如何使用 imagick 保持色彩质量

问题描述 投票:0回答:1

我正在 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是由另一个程序生成的,我没有交出。

php pdf imagick
1个回答
0
投票

所以我通过将图片格式切换为 jpg 而不是 png 解决了这个问题。考虑到我的用例,我不会受到透明度损失或有损压缩的影响。

所以基本上:

$imagick->readImageBlob($svg);
$imagick->setImageFormat('jpeg');
$png = $imagick->getImageBlob();
© www.soinside.com 2019 - 2024. All rights reserved.