使用 ImageMagick 将多页 PDF 转换为 PNG 时,`-flatten` 和 `-alpha Remove` 之间的区别

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

通常,当我有一个透明背景的 PNG 文件时,我想变成白色背景,我运行:

magick input.png -background white -flatten output.png

但是,当我的输入文件是一个多页的 PDF 文件时,我不知道该怎么办。因为

-flatten
会将所有这些页面合并为一个PNG。

相反,我尝试了

-alpha Remove

magick -density 200 input.pdf -background white -alpha Remove -colorspace RGB output.png

根据文档:

删除 - 将图像合成到背景色上。

来源:https://imagemagick.org/script/command-line-options.php#alpha

这确实有效,但看起来更糟,因为抗锯齿似乎不同。

左边的PNG是从PDF中提取出来的,透明背景完好无损。之后,我为带有

magick
的每个页面再次运行
-flatten
,结果是中间的图片。这就是我想要的结果,但我必须为初始 PDF 调用一次
magick
,然后为每个 PNG 调用多次。

如果我使用

-alpha Remove
,结果将如右图所示。正如您所看到的,抗锯齿似乎有所不同,因此边缘看起来不太平滑,图像看起来不像原始 PDF 中的样子。

$ magick --version
Version: ImageMagick 7.1.1-8 Q16-HDRI x86_64 d92cb0e65:20230421 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5) 
Delegates (built-in): bzlib djvu fontconfig freetype heic jbig jng jpeg lcms lqr lzma openexr png raqm tiff webp x xml zlib
Compiler: gcc (7.5)
pdf imagemagick transparency imagemagick-convert antialiasing
© www.soinside.com 2019 - 2024. All rights reserved.