21

PDFをPNGに変換しようとしています-これはすべて正常に機能しますが、無効にしたと思われる場合でも、出力画像はまだ透明です:

with Image(filename='sample.pdf', resolution=300) as img:
    img.background_color = Color("white")
    img.alpha_channel = False
    img.save(filename='image.png')

上記は画像を生成しますが、透明です。以下も試しました:

with Image(filename='sample.pdf', resolution=300, background=Color('white')) as img:
    img.alpha_channel = False
    img.save(filename='image.png')

このエラーが発生します:

Traceback (most recent call last):
  File "file_convert.py", line 20, in <module>
    with Image(filename='sample.pdf', resolution=300, background=Color('white')) as img:
  File "/Users/Frank/.virtualenvs/wand/lib/python2.7/site-packages/wand/image.py", line 1943, in __init__
    raise TypeError("blank image parameters can't be used with image "
TypeError: blank image parameters can't be used with image opening parameters
4

5 に答える 5

17

PNGに変換するPDFもいくつかありました。これは私にとってはうまくいき、上記のように画像を合成するよりも簡単に思えます。

from wand.image import Image
from wand.color import Color

all_pages = Image(blob=self.pdf)        # PDF will have several pages.
single_image = all_pages.sequence[0]    # Just work on first page
with Image(single_image) as i:
    i.format = 'png'
    i.background_color = Color('white') # Set white background.
    i.alpha_channel = 'remove'          # Remove transparency and replace with bg.

参照: wand.image

于 2016-03-29T08:36:03.460 に答える
2

これにまだ問題がある人のために、解決策を見つけました (バージョン 0.4.1 以降で動作しますが、以前のバージョンについてはわかりません)。したがって、次のようなものを使用する必要があります。

from wand.image import Image
from wand.color import Color


with Image(filename='sample.pdf', resolution=300) as img:
img.background_color = Color("white")
img.alpha_channel = 'remove'
img.save(filename='image.png')
于 2016-11-08T18:48:11.773 に答える
2

もう1つの答え(白い画像との合成)は機能しますが、アルファチャンネルを直接設定するのと同様に、最後のページでのみ機能します。以下はワンド 0.4.2 で機能します。

im = wand_image(filename='/tmp/foo.pdf', resolution=200)
for i, page in enumerate(im.sequence):
    with wand_image(page) as page_image:
        page_image.alpha_channel = False
        page_image.save(filename='/tmp/foo.pdf.images/page-%s.png' % i)

これはおそらくワンドのバグだと思います。PDF のアルファ チャンネルを設定するとすべてのページに影響するように見えます、そうではありません。

于 2016-02-16T02:54:11.907 に答える