Skip to content

Instantly share code, notes, and snippets.

@arifsuhan
Created January 22, 2023 06:03
Show Gist options
  • Save arifsuhan/c88eb539f3682b32498704727a9009e9 to your computer and use it in GitHub Desktop.
Save arifsuhan/c88eb539f3682b32498704727a9009e9 to your computer and use it in GitHub Desktop.
```
!pip install pyzbar
!apt-get install python-zbar
```
from pyzbar.pyzbar import decode
from PIL import Image
from IPython.display import Image as myImg
from IPython.display import display
def get_QRData(img_path):
return decode(Image.open(img_path))
def get_info(obj):
keys = ['data', 'type', 'rect', 'polygon', 'quality', 'orientation']
for i in range(len(keys)):
print(keys[i], "-> ",obj[0][i])
filename = 'full.png'
a = get_QRData(filename)
display(myImg(filename, width=400, height=200))
get_info(a)
```
!pip install PyMuPDF
!pip install pyzbar
!pip install pillow
!apt-get install python-zbar
```
import fitz
import io
from PIL import Image
from pyzbar.pyzbar import decode
class EmptyQR:
def __init__(self,filename):
self.filename = filename
self.pdf = ""
self.pdf_pages = 0
self.ext = 'jpeg'
def read_pdf(self):
self.pdf = fitz.open(self.filename)
self.pdf_pages = len(self.pdf)
def read_single_page(self,index):
page = self.pdf[index]
return page.get_images()
def img_count(self,img,page_n):
if img:
print(f"[+] Found a total of {len(img)} images in page {page_n}")
else:
print("[!] No images found on page", page_n)
def read_img(self,data):
for index, img in enumerate(data, start=1):
xref = img[0]
base_image = self.pdf.extract_image(xref)
img_bytes = base_image["image"]
img_ext = base_image["ext"]
if img_ext == self.ext:
return img_bytes
def read_QR(self,img_bytes):
temp = decode(Image.open(io.BytesIO(img_bytes)))
return temp[0][0].decode("utf-8")
def run(self):
self.read_pdf()
for index in range(self.pdf_pages):
temp = self.read_single_page(index)
# self.img_count(temp,index)
img_bytes = self.read_img(temp)
qrCode = self.read_QR(img_bytes)
print(qrCode)
# EmptyQR(pdfname = 'filename.pdf').run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment