使用ImageMagick具有在其中光栅由光栅
覆盖的部分后面的白色背景,结果PDF文件转换我试着使用的ImageMagick(v6.8.9-9 Q16),以含有嵌入到一个PNG PNG文件为PDF转换文件。使用ImageMagick具有在其中光栅由光栅
original PNG file具有透明背景。在PDF也看起来很好。但在PNG obtained after conversion中,PDF中最初由PNG占据的区域具有白色背景。请参阅链接更清晰。
我跑的命令如下:
convert -colorspace sRGB dice.pdf converted_dice.png
我也尝试设置-transparent white
开关,但它最终取出了最终图像中实际上需要的白人。
是否有任何额外的开关或参数传递给convert
为了摆脱眼前这个白色的背景?
您对此任务的处理方式无法正常工作。
您将使用完整的信纸大小的PDF页面(612 X 792磅)转换成PNG图像的命令。
然而,嵌入到PDF页面(612 X 792磅)的图像的原尺寸为800×600像素。这可以通过运行pdfimages -list
可以看出:
pdfimages -list dice.pdf
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
----------------------------------------------------------------------------------------
1 0 image 800 600 rgb 3 8 image no 12 0 72 72 277K 20%
1 1 smask 800 600 gray 1 8 image no 12 0 72 72 50.1K 11%
所以转换PDF页面时,这是第一个问题:它不给你所包含的图像的正确尺寸。
然而,第二,更根本的问题是:你从转换PDF页面得到任何图像重叠在对方,因为他们是从页区域中的所有PDF对象的组合。 (当然,您只能裁剪页面的一部分 - 但同样也可以将裁剪区域中的所有PDF对象组合在一起...)。当您尝试将所有白色像素转换为透明像素时,会遇到这种结果:由于原本不同的对象会合并为一个像素表示,因此您不能再根据需要区分它们。
您应该采取不同的方法并使用不同的工具来提取图像:使用pdfimages
(以上用于与-list
参数从PDF的页面上显示的图像性能工具)。正如你所看到的,有图像列表:一种是RGB光栅图像,另一个是灰度光栅图像,被戏称为类型smask
(softmask)。
这里是一个命令来提取两个图像作为PNG:
pdfimages -png dice.pdf dice-images
这将提取两个:
-
dice-images-0000.png
(彩色图像) -
dice-images-0001.png
(灰度图像)
(注意:只有Poppler版本pdfimages
的最新版本才能让您将图像解压缩为PNG。在PDF中没有PNG这样的东西。只有栅格数据,用不同的方法压缩。旧版本只能将图像提取为PPM或PNM。这对我在下面描述的内容没有任何影响。即使你提取PPM/PNM图片,这两个文件仍然可以如下所述处理...)
下面是两者的并排侧,按比例缩小的蒙太奇:
正如你所看到的,图像本身没有透明背景,而是一个白色背景。 (它不具有Alpha通道)内PDF格式,这两个图像结合使用,以创建透明区域:
- 什么出现在softmask完全黑(右)表示:真正的这个像素图像(左)意味着完全透明。
- 什么看起来完全白色的软掩模(右)意味着:这个像素的真实图像(左)是完全不透明的。
- 在软掩模中出现的灰色阴影(右)意味着:实像(左)的这个像素意味着部分透明(与其灰度/黑色级别一致)。
要结合这两个文件(彩色图像和灰度softmask)回一个PNG透明,你可以使用ImageMagick的现在......
“要合并这两个文件(彩色图像和灰度软掩模)恢复为一个透明的PNG,现在可以使用ImageMagick ......“ - ImageMagick命令是做什么的?即转换 - ??? – evandrix 2015-12-14 14:43:33
库尔特已经介绍的很详细了整个事情。因此,这里仅仅是如何运行它之后通过pdfimages -png
pdfimages -png my.pdf my
这resluts在两个文件中
identify my-0*png
my-000.png PNG 360x310 360x310+0+0 8-bit sRGB 256c 3.3KB 0.000u 0:00.000
my-001.png PNG 360x310 360x310+0+0 8-bit sRGB 256c 9.44KB 0.000u 0:00.000
my-001.png
是图像中pdfimages -list
标记smask
组装与ImageMagick的图像。为了重新组装图像返回到它的原始形式使用-compose CopyOpacity
与ImageMagick的命令composite
composite -compose CopyOpacity my-001.png my-000.png my-reassembled.png
没有*“包含PNG文件的PDF”*。一旦图像位于PDF内部,它就是栅格数据(对于这些栅格数据块有各种压缩方案 - 其中一个与JPEG使用相同)。它以前可能是一个PNG文件,但它不再是。没有办法从PDF数据中发现这一点。当然,您可以提取栅格数据并将它们再次转换为PNG格式。或者转换为TIFF,GIF,JPEG ......如果您对PDF的创建没有预知,那么您将不会了解包含的图像以前的生命形式...... – 2014-11-14 21:58:40