0
我想用ImageMagick和魔杖保存PDF file as JPEG file
(更準確地說,只有第一頁)。使用魔杖的無類型輸出文件
但是,當文件保存時,我打印文件類型,我得到NoneType
。我需要得到uint8
,因爲我必須使用每個JPEG圖像以及OpenCV
之後。
#-*- coding: utf-8 -*-
from wand.image import Image
import os, shutil, glob
for PDF in os.listdir ("/Users/valentinjungbluth/Desktop/NAPS_PDF/") : #boucle sur tous les PDF du dossier
if PDF.endswith('.pdf'):
with Image(filename="/Users/valentinjungbluth/Desktop/NAPS_PDF/" + PDF, resolution=200) as convert :
name = PDF.split('.') #Récupération du nom
page = len(convert.sequence)
if page == 1 : #Nombre de page = 1
convert.compression_quality = 100 #Qualité en %
saved = convert.save(filename="/Users/valentinjungbluth/Desktop/PDF_to_JPG/" + name[0] + ".jpg") #Enregistrement en JPEG sous la forme nom.jpg
print type(saved)
elif page > 1 : #Nombre de page > 1
for frame in convert.sequence : #Pour chaque page
img_page = Image(image=frame)
img_page.compression_quality = 100 #Qualité en %
img_page.save(filename="/Users/valentinjungbluth/Desktop/PDF_to_JPG/" + name[0] + ".jpg") #Enregistrement en JPEG sous la forme nom.jpg
break
我沒有找到正確保存到jpeg文件而不是NoneType的方法。
你有什麼想法做到這一點嗎?
編輯:
腳本這是從答案與make_blob
更新:
#-*- coding: utf-8 -*-
import os
from wand.image import Image
for PDF in os.listdir("/Users/valentinjungbluth/Desktop/NAPS_PDF/"): #boucle sur tous les PDF
if PDF.endswith('.pdf'):
with Image(filename="/Users/valentinjungbluth/Desktop/NAPS_PDF/" + PDF, resolution=200) as convert :
name = PDF.split('.') #Récupération du nom
page = len(convert.sequence)
if page == 1 : #Nombre de page = 1
convert.compression_quality = 100 #Qualité en %
blob = convert.make_blob("JPEG")
#saved = convert.save(filename="/Users/valentinjungbluth/Desktop/PDF_to_JPG/" + name[0] + ".jpg") #Enregistrement en JPEG sous la forme nom.jpg
print type(saved)
elif page > 1 : #Nombre de page > 1
for frame in convert.sequence : #Pour chaque page
img_page = Image(image=frame)
img_page.compression_quality = 100 #Qualité en %
blob = img_page.make_blob("JPEG")
#convert.save(filename="/Users/valentinjungbluth/Desktop/PDF_to_JPG/" + name[0] + ".jpg") #Enregistrement en JPEG sous la forme nom.jpg
print type(blob)
break
@emcconvile我編輯了我的腳本與您的問題,但我怎樣才能將我的JPEG保存爲blob二進制字符串?因爲如果我寫了:'blob.save',我得到一個錯誤:'AttributeError:'str'object has no attribute'save'' – Deadpool
'blob'變量將是二進制字符串。 – emcconville
以及如何使用OpenCV保存並解碼它? – Deadpool