2014-12-05 96 views
1

我在Python 2.7中製作了一個程序,用於識別PDF文件中的QR碼。從PDF文件解碼QR碼Python 2.7

我有什麼:

  1. 代碼,可以讀取圖像的QR碼和
  2. 代碼,可以保存PDF文件到每一頁的圖像。

問題是:我不想將這些圖像保存到硬盤上。

所以我需要的是下列之一:

  • 直接從PDF解碼QR碼的方法。
  • 一種將圖像從PDF保存到變量然後解碼QR碼的方法。

有人可以幫助我實現這個目標嗎?

答:

  • 因爲我得到的PDF文件作爲base64編碼的文件,我首先要在本地保存。
  • 然後在第一頁轉換爲圖像並存儲在本地
  • 然後掃描該圖像的QR碼

有用於從PDF直接掃描QR碼無解

+0

你用什麼來解碼自己? – 2014-12-05 14:08:46

+0

目前我使用qrtools僅用於解碼部分 – JordyRitzen 2014-12-05 14:12:29

+0

您是否將自己限制爲以位圖形式插入的QR碼? – usr2564301 2014-12-05 14:15:35

回答

1

對第一種情況不能多說。

其次,您可以使用StringIO module。但是,只有當你用於解碼的庫接受類文件對象作爲參數。

編輯: 對於庫,你可以嘗試zbar和(https://pypi.python.org/pypi/zbarhttps://github.com/ZBar/ZBar/tree/master/python)。如果你在Windows系統上,這個答案QR Code decoder library for python會幫助你。

編輯2: 現在經過一番搜索,zbar看起來是非常古老的庫,我發現的大多數例子都很舊。但是我能夠挖掘一些代碼。

import zbar 
from PIL import Image 

#create a reader 
scanner=zbar.ImageScanner() 

#configure the reader 
scanner.parse_config('enable') 
pil_img = Image.open() # You open your image data with PIL. 
width, height=pil_img.size 
raw = pil_img.tostring() 

#wrap image data 
image=zbar.Image(width, height, 'Y800', raw) 

#scan the image for barcodes 
scanner.scan(image) 

#extract results 
for symbol in image: 
    #do something useful with results 
    print symbol.type, ':\n%s' % symbol.data 

對於PIL,我建議安裝Pillow模塊。

+0

你知道一個QR解碼器庫嗎? – JordyRitzen 2014-12-05 14:18:26

+0

@programme,請檢查我的更新答案。 – 2014-12-05 14:36:22

+0

其實我現在使用的是Linux系統,它將在Linux系統上使用。但我會試一試,讓你知道結果如何。 – JordyRitzen 2014-12-05 14:40:56