使用 ImageMagick 将 PNG 文件转换为 PDF 时出现粗糙的边缘

Posted

技术标签:

【中文标题】使用 ImageMagick 将 PNG 文件转换为 PDF 时出现粗糙的边缘【英文标题】:Rough edges when converting PNG file to PDF with ImageMagick 【发布时间】:2020-10-31 09:09:27 【问题描述】:

我正在使用 ImageMagick 将 PNG 文件转换为 PDF,效果很好,但我遇到了一些像这样的图像的小问题:

当使用convert fanta-logo.png out.pdf 进行转换时,生成的 PDF 文件如下所示:

图像的边角有粗糙的边缘,而原始 PNG 文件中不存在这些边缘。我尝试将 PNG 转换为 TIFF 或 JPEG 2000,然后转换为 PDF,但结果是一样的。即使使用 Inkscape 将 PNG 文件转换为 PDF 也会产生相同的结果,所以我猜这与特定的 PNG 文件或 PDF 相关。

有人经历过吗? identify 的输出如下:

fanta-logo.png PNG 611x600 611x600+0+0 8-bit sRGB 215227B 0.000u 0:00.000

我在 Windows 10 x64 上使用 IM 7.0.8-64 Q16。我使用 convert fanta-logo.png -alpha extract alpha.png 提取了 PNG 文件的 alpha 通道,它看起来很干净:

【问题讨论】:

尝试转换为JPG,看看是否得到相同的结果。 尝试将 Alpha 通道提取到单独的文件中,看看边缘是否毛茸茸的...convert fanta-logo.png -alpha extract alpha.png. 【参考方案1】:

它在带有 libpng 1.6.37 的 IM 6.9.11.23 Q16 Mac OSX 上运行良好。

convert fanta.png fanta.pdf

fanta.pdf

你的 IM 版本和你的 libpng 版本是多少?也许您需要升级其中一个或两个。

【讨论】:

我在 Windows 10 x64 上使用 IM 7.0.8-64 Q16 那个版本的 ImageMagick 相当老了。现在是 7.0.10.23。所以建议你升级。你也没有回答我关于什么版本的 libpng 的问题。也许那是旧的或错误的版本。 magick -list format 并查看 PNG 的行尾。这会告诉你你的版本。 我会升级IM再测试! libpng 版本也是 1.6.37!

以上是关于使用 ImageMagick 将 PNG 文件转换为 PDF 时出现粗糙的边缘的主要内容,如果未能解决你的问题,请参考以下文章

imagemagick 将 RGB PNG 转换为 CMYK PDF

在 ImageMagick 中从 GIF 获取第一个转换的 PNG 文件

使用 Imagemagick 将 RAW 转换为 PNG

使用 ImageMagick 将 pdf 转换为 png 时出错

定义 ImageMagick 转换的文件顺序

ImageMagick 不会将 .png 转换为 .jpg