import cv2
from PIL import Image
try:
    from pyzbar import pyzbar
    PYZBAR_AVAILABLE = True
except ImportError:
    print("Fehler: pyzbar nicht installiert.")
    PYZBAR_AVAILABLE = False


def scan_qr_from_file(image_path):
    """
    QR-Code aus einer Bilddatei lesen.
    """
    if not PYZBAR_AVAILABLE:
        print("pyzbar-Bibliothek nicht verfügbar.")
        return None

    image = cv2.imread(image_path)
    if image is None:
        print(f"Konnte Bild nicht laden: {image_path}")
        return None

    qr_codes = pyzbar.decode(image)

    if qr_codes:
        results = [qr.data.decode("utf-8") for qr in qr_codes]
        return results
    else:
        return []


if __name__ == "__main__":
    image_path = input("Pfad zur Bilddatei mit QR-Code: ").strip()
    results = scan_qr_from_file(image_path)

    if results:
        print("Gefundene QR-Codes:")
        for i, data in enumerate(results, 1):
            print(f"{i}. {data}")
    else:
        print("Kein QR-Code im Bild gefunden.")
    input("Enter zum schli?en")
