Files
aza/APP/logo-tool/core/image_loader.py
2026-03-30 07:59:11 +02:00

30 lines
863 B
Python

"""
Lädt PNG-Dateien und konvertiert sie für die Anzeige in Qt und für die Vektorisierung.
"""
from __future__ import annotations
from pathlib import Path
import numpy as np
from PIL import Image
from PySide6.QtGui import QImage, QPixmap
def load_png(path: str | Path) -> tuple[np.ndarray, int, int]:
"""Lädt ein PNG und gibt (RGBA-Array, Breite, Höhe) zurück."""
img = Image.open(path).convert("RGBA")
pixels = np.array(img)
return pixels, img.width, img.height
def numpy_to_qpixmap(pixels: np.ndarray, width: int, height: int) -> QPixmap:
"""Konvertiert ein RGBA numpy-Array in ein QPixmap für die Qt-Anzeige."""
bytes_per_line = 4 * width
qimg = QImage(
pixels.data.tobytes(),
width,
height,
bytes_per_line,
QImage.Format.Format_RGBA8888,
)
return QPixmap.fromImage(qimg)