Я конвертирую pdf-страницы в изображения и конвертирую изображения в bytearray. Я понял, что во втором преобразовании нет изменений размера, но в первом преобразовании изменение размера зависит от значения dpi и формата изображения.
Поэтому я манипулировал значением dpi и сравнивал страницы друг с другом. Произошло изменение в размере, но этого было недостаточно. Поэтому я использовал форматы jpg / png вместе. Как вы знаете, формат png обрабатывает текст, содержащий изображения, намного лучше, чем jpg, и противоположная ситуация на фотографиях для jpg. Из-за этого:
Мне нужно определить, содержит ли изображение текст. Так что я могу использовать формат png для этой страницы. Если нет, я могу использовать формат JPG.
Я использую этот код для первого преобразования:
from pdf2image import convert_from_path
def extractPagesAsImages_png(pdfName, pageCount):
try:
os.mkdir("tmpDIR")
except:
print("DIRECTORY MADE ALREADY")
images = []
i = 0
for page in range(0,pageCount,10) :
images.append(convert_from_path(pdfName, dpi=100, first_page=page, last_page = min(page+10-1,self.pageCount)))
os.chdir("tmpDIR")
print(os.getcwd())
for chunk in images:
for img in chunk:
img.save(f'{i}.png', 'PNG')
i += 1
Для jpg я изменяю «png» на jpg и «PNG» на «JPEG».
Так же можно Вы помогаете мне в этом решении JPG / PNG? Не стесняйтесь упомянуть совершенно другой подход к проблеме.
Заранее спасибо и будьте в безопасности!