1

我正在使用 PythonMagick 将多页 .pdf 文件转换为 .png 文件,但只要 .pdf 文件的背景是透明的,就会失败。

我的 ImageMagick 版本是 7.0.7-5 而 Ghostscript 版本是 9.22

这是我所做的:

# just read the first page as an example:
import PythonMagick
im =  PythonMagick.Image()
im.density('400')          # change dpi
im.read('myfile.pdf[0]')   # error occurs
# im.write('target_dir')

然后它会返回一个错误

RuntimeError: python.exe: iCCP: Not recognizing known sRGB profile that has been edited `C:\Users\...\AppData\Local\Temp\5\magick-19492pMuJsmcrWoca1' @ warning/png.c/MagickPNGWarningHandler/1832

我可以使用以下代码更改背景并避免错误,但我无法使用此方法更改图像 dpi:

# just read the first page as an example:
import PythonMagick

im =  PythonMagick.Image('myfile.pdf[0]')
im.density('400') # doesn't work

bgColour = '#ffffff'
size = "%sx%s" % (im.columns(), im.rows())
flattened = PythonMagick.Image(size, bgColour)
flattened.type = im.type
flattened.composite(im, 0, 0, PythonMagick.CompositeOperator.SrcOverCompositeOp)
flattened.density('400') # also not working
flattened.write('target_dir')

似乎只要我使用 .read() 它就会返回错误,但更改 dpi 需要 .read() 函数。是否有任何解决方案既可以阅读 pdf 又可以更改 dpi?

4

0 回答 0