提问人:Mouke 提问时间:10/24/2023 最后编辑:Mouke 更新时间:10/25/2023 访问量:41
如何使用 imagick 保持色彩质量
How to keep color quality with imagick
问:
我在 PHP8 中玩弄 Imagick 并面临一些问题。我的第一个目标是在 SVG 中居中显示图片。最后,我将图片放在 svg 的图像标签中,然后将整个 SVG 转换为 PNG 并将该 PNG 放入 PDF 文件中。
在 PDF 中应用图片时,某些 PDF 阅读器(如 Adobe 的)中的颜色有点不对劲,例如“褪色”。在某些阅读器中,例如 PSPDFKit 的 js 查看器,这是正常的。
这就是我的图像应该是什么样子(左边的橙色条是 SVG):
当通过imagick时,图片看起来“褪色”了:
我的代码,非常基本:
$imagick->readImageBlob($svg);
$imagick->setImageFormat('png');
$png = $imagick->getImageBlob();
我主要尝试看看不透明度/透明度是否是原因,还尝试了其他图像格式(此处看到的其他类型的 PNG)
编辑:问题似乎来自图片生成,因为只是将图片放入PDF中(首先不进行转换)不会影响其质量。PDF 是由另一个我没有移交的程序生成的。
答:
0赞
Mouke
10/25/2023
#1
因此,我通过将图片格式切换为jpg而不是png来解决这个问题。考虑到我的用例,我不会受到透明度损失或有损压缩的影响。
所以基本上:
$imagick->readImageBlob($svg);
$imagick->setImageFormat('jpeg');
$png = $imagick->getImageBlob();
上一个:修剪/拆分字符串
评论