将多页PDF转换为TIFF不适用于Python库Wand

给定简短的5页PDF文件(附在底部),以及以下python代码转换为多页TIFF:

from wand.image import Image
with Image(filename='5-page-pdf.pdf', resolution=200) as img:
    img.type = "grayscale"
    img.format = "tiff"
    img.compression = "lzw"
    img.save(filename="test.tiff")

导致 TIFF 文件的第 2-4 页显示为深灰色(或透明)背景上的黑色文本。其他图像处理库无法打开文件或渲染文件。

使用Wand使用的ImageMagick转换相同的PDF,效果很好

convert -density 200 5-page-pdf.pdf -type grayscale -compress lzw 5-page-pdf.tiff

这将生成一个文件,该文件可与其他图像处理库配合使用,并且在 TIFF 查看器中看起来正确。

我尝试过删除Alpha通道,尝试将背景颜色设置为“白色”以及其他一些操作,但无济于事。从魔杖中出来的TIFF总是乱码。如果它在ImageMagick中可行,那么在Wand中应该是可行的,对吧?我缺少什么参数或设置?


达令说
浏览 64回答 1
1回答

慕的地10843

设置属性不会在页面上传播。img.alpha_channel请尝试此解决方法from wand.api import libraryfrom wand.image import Imagewith Image(filename="5-page-pdf.pdf", resolution=200) as img:    img.type = 'grayscale'    img.compression = "lzw"    # Manually iterate over all page, and turn off alpha channel.    library.MagickResetIterator(img.wand)    for idx in range(library.MagickGetNumberImages(img.wand)):        library.MagickSetIteratorIndex(img.wand, idx)        img.alpha_channel = 'off'    img.save(filename="test.tiff")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python