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(如果还不是很明显)并且想解决这个问题。

编辑: 澄清一下,为了我的目的,我需要一个 PNG 而不是 SVG。这不是修复浏览器或其他东西的兼容性问题。

4

1 回答 1

1

Generally there is confusion on setImageResolution and setResolution. So you may want to try setImageResolution along with setResolution and see if your edge issue is corrected. From my understanding setResolution is correct for density, but you want to still set your image size. Plus 144 may not be enough high enough density.

If not, then resizing an image is always a possibility. Make the image 2x larger then it needs to be and then resize it.

于 2012-07-20T21:55:15.697 回答