Posty

Wyświetlanie postów z luty, 2025

Zapisywanie dużych plików z użyciem kodów QR - część 2, implementacja

Obraz
Witajcie. W poprzedniej części opisałem (zaproponowałem) sposób zapisu pliku w formie tekstów równej długości, które można zapisać np. na wielu kodach QR. Można go przeczytać tutaj: https://wojtekb30.blogspot.com/2025/02/zapisywanie-duzych-plikow-z-uzyciem.html Napisałem w języku Python implementację mojego pomysłu. Podzieliłem ją na osobną klasę kodera i dekodera: import os import base64 import hashlib class FileToStringsCoder: def __init__(self, file_path: str, max_string_lenght: int): if not os.path.exists(file_path): raise Exception("Error: the file does not exist.") self.max_string_lenght = max_string_lenght self.file_name = os.path.basename(file_path) try: self.extension = self.file_name.split(".")[-1] except: print("Failed to get file's extension, assuming .bin") self.extension = "bin" total_min_lenght = 40 + len(self.e...

Zapisywanie dużych plików z użyciem kodów QR - część 1, zarys teoretyczny

Obraz
Witajcie! Ostatnio rozważałem możliwość zapisu dużych plików na wielu kodach QR albo tagach NFC. Wymyśliłem sposób, w jaki można to osiągnąć, i chciałbym go tutaj opisać. Zapewnie każdy z Was zna kody QR - dwuwymiarowe grafiki, które można zeskanować z użyciem telefonu aby odczytać zakodowany w nich tekst. Najczęściej są one wykorzystywane do zapisywania adresów URL (które prowadzą do stron internetowych lub plików), albo krótkich tekstów. Aplikacje odczytujące kody QR często rozpoznają wzory tekstów, aby np. odczytać informacje zakodowane w kodzie QR od razu jako kontakt. Przykładowo tekst zapisany w formie  WIFI:S:<SSID>;T:<WEP|WPA|nopass>;P:<PASSWORD>;H:<true|false|blank>;; pozwala odczytać kod QR od razu jako konfigurację połączenia z Wi-fi. Kody QR (tak samo jak tagi NFC) mają dość małą pojemność. Wg. Wikipedii jest ona następująca (maksymalna ilość symboli dla kolejno liczb, znaków alfanumerycznych, bajtów, Kanji (Azjatycki alfabet)): Nawet jeżeli teor...