Я конвертирую PdfPages в изображения с библиотекой wand.image .
Мне нужно хранить их в кеше, а не хранить их локально, но я не могу понять, как преобразовать этот объект WandImage в растровое изображение . Я уже прочитал документацию wand.image и провел много исследований, но сам не смог решить проблему ..
Мой код работал отлично, когда я его сохранилlocal:
def pdf_to_jpeg(self, pdf_path):
list_of_images = []
wand_image_pdf = WI(filename=pdf_path, resolution=20)
wand_image_jpegs = wand_image_pdf.convert("jpeg")
for page_number, wand_image_jpeg in enumerate(wand_image_jpegs.sequence):
jpeg = WI(image=wand_image_jpeg)
jpeg.save(filename="../output/{0}.jpeg".format(str(page_number)))
list_of_images.append("../output/{0}.jpeg".format(str(page_number)))
return list_of_images
Но с моим новым кодом:
def pdf_to_jpeg(self, pdf_path):
list_of_images = []
wand_image_pdf = WI(filename=pdf_path, resolution=20)
wand_image_jpegs = wand_image_pdf.convert("jpeg")
for page_number, wand_image_jpeg in enumerate(wand_image_jpegs.sequence):
jpeg = WI(image=wand_image_jpeg)
list_of_images.append(jpeg)
return list_of_images
Я получаю сообщение об ошибке:
QImage::QImage(), XPM is not supported
Traceback (most recent call last):
File "/Users/darjusch.schrand/PycharmProjects/PdfConverter/pdf_converter/main.py", line 33, in setup
self.push_button_to_image = self.logic.create_push_button(self.list_of_images)
File "/Users/darjusch.schrand/PycharmProjects/PdfConverter/pdf_converter/logic/logic.py", line 21, in create_push_button
pixmap = QPixmap(pic)
TypeError: The argument must be a sequence of strings.
Минимальный рабочий пример:
from PySide2.QtGui import QPixmap, QIcon
from PySide2.QtCore import QSize
from PySide2.QtWidgets import QPushButton
class Logic:
def create_push_button(list_of_images):
push_button_to_image = {}
for pic in list_of_images:
push_button = QPushButton()
pixmap = QPixmap(pic)
button_icon = QIcon(pixmap)
push_button.setIcon(button_icon)
push_button.setIconSize(QSize(100, 100))
push_button.setCheckable(True)
push_button_to_image[push_button] = pic
return push_button_to_image
def pdf_to_jpeg(pdf_path):
list_of_images = []
wand_image_pdf = WI(filename=pdf_path, resolution=20)
wand_image_jpegs = wand_image_pdf.convert("jpeg")
for page_number, wand_image_jpeg in enumerate(wand_image_jpegs.sequence):
jpeg = WI(image=wand_image_jpeg)
list_of_images.append(jpeg)
return list_of_images
pdf_to_jpeg("example.pdf")
example.pdf