Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi zwei Pixel mit alpha Transparenz kombinieren (https://www.delphipraxis.net/136195-zwei-pixel-mit-alpha-transparenz-kombinieren.html)

NTcomputer_0 25. Jun 2009 11:21


zwei Pixel mit alpha Transparenz kombinieren
 
Hallo,

ich möchte zwei Pixel deren Farbwerte jeweils in einer TColor32-Variable stecken (aus den Graphics32-Komponenten) miteinander kombinieren, also den vorderen auf den hinteren zeichnen.
Nun kenn ich mich mit Pixelwerten usw nicht besonders gut aus, habe aber schon eine Erläuterung der TColor32 gefunden: TColor32
Kann mir jemand erklären, wie ich die Variable zerlegen und welche Operationen mit den Ergebnissen durchführen muss, um das gewünschte Ergebnis zu erzielen?

Blup 25. Jun 2009 14:33

Re: zwei Pixel mit alpha Transparenz kombinieren
 
Im Prinzip etwa so:
Code:
Faktor1 := VORN.A / 255;
Faktor2 := 1 - Faktor1;

Ziel.R := (VORN.R * Faktor1) + (HINTEN.R * Faktor2);
Ziel.G := (VORN.G * Faktor1) + (HINTEN.G * Faktor2);
Ziel.B := (VORN.B * Faktor1) + (HINTEN.B * Faktor2);
Ziel.A := HINTEN.A;

NTcomputer_0 25. Jun 2009 16:09

Re: zwei Pixel mit alpha Transparenz kombinieren
 
danke für deinen code, das würde mir sehr helfen; nur weiß ich nicht wie ich einzelne Bytes aus einem Longword extrahieren kann...

Blup 26. Jun 2009 08:27

Re: zwei Pixel mit alpha Transparenz kombinieren
 
Aber du hast doch selbst den Link mit einem Beispiel gepostet?
TColor32 ist ein Longword, steht gleich in der ersten Zeile.
Man kann also wie in dem Beispiel direkt auf TColor32Entry casten.
Delphi-Quellcode:
var
  AColor32: Longword;

TColor32Entry(AColor32).A

Hawkeye219 26. Jun 2009 09:06

Re: zwei Pixel mit alpha Transparenz kombinieren
 
Hallo,

die Graphics32-Bibliothek stellt in der Unit GR32_Blend die benötigten Hilfsmittel zur Verfügung: Combine und EMMS.

Gruß Hawkeye

NTcomputer_0 26. Jun 2009 16:40

Re: zwei Pixel mit alpha Transparenz kombinieren
 
Perfekt, danke euch allen!
klar, TColor32Entry.. naja auch Lesen muss gelernt sein :roll:

Übrigens habe ich nicht die Funktion aus der GR32_Blend genommen, weil die Farbwerte aus meinem Bitmap bereits mit der Transparenz verrechnet waren, und Delphi mir daher immer halbtransparente Pixel mit schönem schwarzen Hintergrund ausgestattet hat :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz