通常,当我有一个透明背景的 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)