6

このコードで画像に変換svgしますpng

<?php 
exec('/usr/bin/rsvg-convert -w 1000 -h 1000 tshirt.svg -o tshirt.png');
?>

これは、単一の svg 画像で機能します。

実際には、svg次のような複数の画像レイヤーを含む画像があります。

1層目 -これは透明な背景のTシャツ画像です

2層目 -これは色を含む別のTシャツ画像です

第 3 層 -これは、T シャツに配置する小さなステッカー イメージです。

私のsvgコードは - です:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg crossOrigin="anonymous" width="1000px" height="1000px" version="1.1"   xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">

    <g class="canvas_background">
        <rect class="canvas_variant_color" width="998" height="998" x="0" y="0" style="" fill="#008080"/>
        <rect real_size="16,22" height="547" class="canvas_border" width="343" y="160" x="335" fill="#008080" />        
    </g>

    <g class="canvas_objects" style="" mask="url('#Sibnip5tjg')">
        <g style="display: block;" transform="matrix(1,0,0,1,-146.5,-236.3909)">
            <image style="display: block; opacity: 1;" height="175" width="308" y="461" x="501" crossOrigin="anonymous" xlink:href="http://dothejob.in/teerrific/img/front/unnamed.png"/>
        </g>
    </g>

    <g class="canvas_mockups">
        <g class="canvas_styles">
            <g class="canvas_style">
                <g  style="opacity: 1;">
                    <image  xlink:href="http://dothejob.in/teerrific/img/front/test.png"  x="0" y="0" width="1000" height="1000" />
                </g>
            </g>
        </g>
    </g> 
</svg>

ここで、すべてのsvg画像レイヤーを結合して単一のpng画像を作成したいと考えています。

現在、変換されたpng画像には背景色のみが表示されています。Tシャツとステッカーの画像が表示されていません。

4

2 に答える 2

0

あなたが得ている問題は、2 つのリンクされた PNG がそのサイトから解決されていないことに起因しています (それらは存在しますが)。たとえば、「dothejob.in」のこれら 2 つの画像をローカルの img というフォルダーに保存し、代わりに SVG マークアップの xlink:href に img/test.png および img/unnamed.png としてスローする場合、コマンドが正常に機能することがわかります。

これは他の何人かにも不便を与えており、議論されているいくつかの異なる解決策があります. 詳細については、stackoverflow の他の場所でこのスレッドを確認してください。これをどのように解決するかは、使用する svg の数、それらを処理する必要がある速度などに大きく依存します。

于 2015-07-07T19:22:34.440 に答える