Thema: Delphi PNG verschmelzen

Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.436 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: PNG verschmelzen

  Alt 22. Jun 2023, 12:49
Hab mal durchdacht, was bei der Verschmelzung zweier halbtransparenter Layer eigentlich passieren muss:
Code:
           
Betrachter     +++++++++++++++++

Layer1: R1G1B1 .................
        A1     -----------------

Layer2: R2G2B2 .................
        A2     -----------------

Hintergrund    _________________
für die Berechnung das Alpha-Byte auf 0 bis 1 normalisieren: 0.255 -> 0..1 (0 = durchsichtig .. undurchsichtig)
Code:
A1 = A1 / 255
A2 = A2 / 255
Code:
R = A1 * R1 + (1 - A1) * R2
G = A1 * G1 + (1 - A1) * G2
B = A1 * B1 + (1 - A1) * B2
A = 1 - ((1-A1) * (1-A2))
Gleichungen umgeformt:
Code:
R = A1 * (R1 - R2) + R2
G = A1 * (G1 - G2) + G2
B = A1 * (B1 - B2) + B2
A = A1 + A2 - A1 * A2
Alpha wieder als Byte darstellen:
Code:
A = A * 255 // 0..1 -> 0..255

Geändert von Blup (22. Jun 2023 um 15:22 Uhr) Grund: Berechnung von Alpha korrigiert
  Mit Zitat antworten Zitat