0

次のスクリプトを使用して、SVG の拡大された PNG バージョンを生成しています。

<img src="barrington.svg" width="418" height="188"/> //comparison
<?php
    $im = new Imagick();
    $im->setBackgroundColor(new ImagickPixel('transparent'));
    $svg = file_get_contents("barrington.svg");
    $im->setresolution(144,144);
    $im->readImageBlob($svg);
    $im->setImageFormat("png32");
    echo '<img src="data:image/png32;base64,' . base64_encode($im) . '"  />'
?>

SVG バージョンを同じサイズで表示/比較すると、PNG は一部の画像の周囲にギザギザのエッジがあります。

(ここの画像を参照してください: http://i.stack.imgur.com/WGKIH.png )

私は ImageMagick を使用しており (まだ明らかでない場合)、この問題を解決したいと考えています。

編集: 明確にするために、私の目的のために、SVGではなくPNGが必要です。これは、ブラウザの互換性を修正するなどの問題ではありません。

4

1 に答える 1

1

一般に、setImageResolutionとsetResolutionには混乱があります。したがって、setResolutionと一緒にsetImageResolutionを試して、エッジの問題が修正されているかどうかを確認することをお勧めします。私の理解では、setResolutionは密度に対して正しいですが、それでも画像サイズを設定する必要があります。Plus 144は、十分な密度ではない可能性があります。

そうでない場合は、画像のサイズを変更することが常に可能です。画像を必要以上に2倍大きくしてから、サイズを変更します。

于 2012-07-20T21:55:15.697 に答える