From 2a588025d707b30db875ac19687fc08d17c798c6 Mon Sep 17 00:00:00 2001 From: tcsenpai Date: Sun, 21 Jul 2024 05:03:56 +0200 Subject: [PATCH] moar customization, sillier example --- example_with_files.py | 6 +++--- pika.webp | Bin 0 -> 62040 bytes qraro.py | 10 +++++++--- 3 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 pika.webp diff --git a/example_with_files.py b/example_with_files.py index 4eabed0..f1f7f0a 100644 --- a/example_with_files.py +++ b/example_with_files.py @@ -1,11 +1,11 @@ import qraro -with open("input_test_file.txt", "rb") as f: +with open("pika.webp", "rb") as f: data = f.read() -qraro.bin_to_qr(data, chunk_size=50) +qraro.bin_to_qr(data, chunk_size=100, box_size=10, border=4) test_file = qraro.qr_to_bin() -with open("output_test_file.txt", "wb") as f: +with open("pika_out.webp", "wb") as f: f.write(test_file) \ No newline at end of file diff --git a/pika.webp b/pika.webp new file mode 100644 index 0000000000000000000000000000000000000000..ba82749673799c4bf43b19c5cec0ab109d69a342 GIT binary patch literal 62040 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�aoF3@UA`-rd14E;UnZPS=M(B?K?gTpvQq08Z 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⪻Xx&4Y6ri2Z%Hx^4jJ`v@E}YPHk(2pci+pG(v&~ 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 literal 0 HcmV?d00001 diff --git a/qraro.py b/qraro.py index 4b3b0d4..611bc8c 100644 --- a/qraro.py +++ b/qraro.py @@ -2,18 +2,19 @@ import qrcode from PIL import Image import zxing -def bin_to_qr(data, chunk_size=100, filename_prefix="qr_code"): +def bin_to_qr(data, chunk_size=100, filename_prefix="qr_code", box_size=10, border=4): hex_data = data.hex() chunks = [hex_data[i:i+chunk_size] for i in range(0, len(hex_data), chunk_size)] total_chunks = len(chunks) for i, chunk in enumerate(chunks, 1): - qr = qrcode.QRCode(version=None, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4) + qr = qrcode.QRCode(version=None, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=box_size, border=border) qr.add_data(f"{i}/{total_chunks}:{chunk}") qr.make(fit=True) - + print(f"Generating QR code {i}", end="") img = qr.make_image(fill_color="black", back_color="white") img.save(f"{filename_prefix}_{i}.png") + print(f"[OK]") print(f"Generated {total_chunks} QR codes.") @@ -25,7 +26,9 @@ def qr_to_bin(filename_prefix="qr_code"): while True: try: filename = f"{filename_prefix}_{i}.png" + print(f"Decoding QR code {i}...", end="") barcode = reader.decode(filename) + print(f"decoded...", end="") if barcode and barcode.parsed: decoded = barcode.parsed chunk_info, chunk_data = decoded.split(':', 1) @@ -34,6 +37,7 @@ def qr_to_bin(filename_prefix="qr_code"): if chunk_num == total_chunks: break i += 1 + print(f"binary data extracted [OK]") except FileNotFoundError: break except Exception as e: