Могу ли я преобразовать большой двоичный объект PDF в изображение с помощью Python и Wand?

Я пытаюсь преобразовать первую страницу PDF в изображение. Однако PDF-файл поступает прямо из базы данных в формате base64. Затем я конвертирую его в blob. Я хочу знать, можно ли преобразовать первую страницу PDF в изображение в моем коде Python.

Я знаком с возможностью использовать имя файла в объекте изображения:

Image(filename="test.pdf[0]") as img:

Проблема, с которой я столкнулся, заключается в том, что это не фактическое имя файла, а просто капля. Это то, что у меня есть до сих пор, любые предложения будут оценены.

x = object['file']
fileBlob = base64.b64decode('x')
with Image(**what do I put here for pdf blob?**) as img:
    more code

person rachiebytes    schedule 09.10.2015    source источник


Ответы (2)


Меня устраивает

all_pages = Image(blob=blob_pdf)        # PDF will have several pages.
single_image = all_pages.sequence[0]    # Just work on first page
with Image(single_image) as i:
    ...
person Vadym    schedule 12.05.2016

Документация что-то говорит о больших двоичных объектах. . Так должно быть:

with Image(blob=fileBlob):
    #etc etc

Я не проверял это, но я думаю, что это то, что вам нужно.

person George TG    schedule 09.10.2015
comment
Я пробовал это ранее и получил сообщение wand.exceptions.WandError: wand не содержит изображений `MagickWand-1' @ error/magick-image.c/MagickWriteImage/13115 - person rachiebytes; 09.10.2015
comment
Вы уверены, что это правильный способ получить файл fileBlob? попробуйте это, это может помочь: stackoverflow.com/a/26233785/2876209 Также я заметил, что в вашем коде вы даете ' x'(строка) вместо x(который является объектом) в качестве аргумента функции декодирования. Это может быть ошибкой, если вы делаете это и в своем коде. - person George TG; 09.10.2015