ImageMagick:JPEG的透明背景,而不是PNG

时间:2012-12-27 22:01:05

标签: imagemagick png jpeg

我使用ImageMagick将PDF文件转换为PNG。 (很多文字,所以我更倾向于使用PNG而不是JPEG。)我在OS X,10.8.2上做这个。

我尝试使用Ghostscript,然后使用ImageMagick,就像 here 一样,我得到了灰色背景。我将它缩短为一行,因为ImageMagick可以使用PDF并尝试过:

 convert -background transparent -transparent white \
          Background-Page01.pdf TestClearX1.png

我已尝试使用PNG文件和JPEG文件。 (有和没有-transparent white。)

如果它是JPEG,我可以得到一个白色背景(这可能很清楚,但在我的观察中,我无法告诉),但是使用PNG,我总是得到一个黑暗的背景。作为测试,我考虑过尝试生成BMP,然后将其转换为PNG,但它不会生成BMP文件。

如何获得PNG文件的透明背景?

如果这不可能,因为JPEG文件不适合文本,是否有更好的选择?

2 个答案:

答案 0 :(得分:2)

这不是一个答案,但comment部分的格式不允许合理的格式化,所以我在这里提供它。

您提到OS X中的Preview没有正确显示透明度,这是正确的。为了解决这个问题,我制作了以下脚本,它将您想要查看的文件覆盖到像Photoshop那样的棋盘图案上。我将其保存为preview,然后在其上使用chmod +x preview使其可执行。这是脚本:

#!/bin/bash
################################################################################
# preview
# Preview images using OSX "open" but overlay images on top of checkerboard 
# first so you can see transparency/transparent pixels, since Preview renders
# them grey :-(
################################################################################
for f in "$@"
do
   base=$(basename "$f")
   composite -compose Dst_Over -tile pattern:checkerboard "$f" "/tmp/$base"
   open -g "/tmp/$base"
done

这使您可以:

/.preview file1.png file2.gif

-g选项也意味着Preview也没有抓住焦点: - )

所以,而不是这样:

enter image description here

它看起来像这样:

enter image description here

答案 1 :(得分:1)

在LibreOffice中导出PDF有两种方法,一种方法不提供任何警告。另一种方式是警告PDF / A 不能有透明对象。问题是您使用的PDF / A文件不支持透明对象 - 这会导致您的PNG始终具有背景颜色。