Created
January 22, 2023 06:03
-
-
Save arifsuhan/c88eb539f3682b32498704727a9009e9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
``` | |
!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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
``` | |
!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