我正在使用以下脚本生成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。这不是修复浏览器兼容性的问题。
答案 0 :(得分:1)
通常在setImageResolution和setResolution上存在混淆。因此,您可能希望尝试使用setImageResolution和setResolution,并查看边缘问题是否已得到纠正。根据我的理解,setResolution对于密度是正确的,但您仍想设置图像大小。加144可能不够高密度。
如果没有,则始终可以调整图像大小。使图像大2倍,然后调整大小。