Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Pixelfarbe aus Gif auslesen (https://www.delphipraxis.net/41867-pixelfarbe-aus-gif-auslesen.html)

Hazardos 9. Mär 2005 21:31


Pixelfarbe aus Gif auslesen
 
Hallo,

wie im betreff bereits steht möchte ich die Farbe beliebiger Pixel aus einem Gif-bild auslesen.
Der zweck der ganzen Sache ist die halbtransparente Zeichnung einer Gif-Datei auf einen Hintergrund. Mit normalen Grafiken wie jpg und bmp habe ich dies schon hinbekommen, nur möchte ich ebenfalls die freien Formen einer Gif-Grafik nutzen können ohne irgendeine maske zu erstellen.

Für Vorschläge diesbezüglich wäre ich sehr dankbar... ne Lösung wäre natürlich noch besser... ;)

Gruß Jörn

ISAS 11. Mär 2005 16:49

Re: Pixelfarbe aus Gif auslesen
 
Delphi-Quellcode:
for i1 := 0 to 50 do for i2 :=0 to 30 do begin
text:=copy(colortostring(image1.Canvas.Pixels[i2,i1]),4,12);
ListBox1.Items.Add(text);
end;
i1 = ImageWidth (50)
i2 = ImageHeight(30)

In dem Image ist ein GIF-Bild. Mir fällt auf, dass machmal der Wert "hite" ausgegeben wird. Frag mich nicht, was das bedeutet. Nun hast du die Farbe als Hexadezimalzahl.

Wenn du dies in eine RGB-Farbe umwandelt willst, dann sags mir. :wink:

PS: Hoffe dir geholfen zu haben!

Khabarakh 11. Mär 2005 17:24

Re: Pixelfarbe aus Gif auslesen
 
Das Auslesen der RGB-Werte ist ja nicht das Problem, sondern die Alpha-Werte. Mit Standard-Delphikomponenten kann es ja eigentlich gar nicht gehen, da TColor (und auch WinColor) keine Transparenz kennt. Die GR32-Lib unterstützt zwar Transparenz mit einem eigenen Format, allerdings muss man beim Laden wieder auf die normalen Komponenten zugreifen, ergo geht es damit auch nicht. Such mal in der DP oder bei Torry, vielleicht gibt es ja eine andere Lösung.

Hazardos 11. Mär 2005 22:15

Re: Pixelfarbe aus Gif auslesen
 
Danke für eure Antworten.

ich habe jetzt jedoch bereits eine mehr oder weniger improvisierte Lösung gefunden, die ich euch nicht vorenthalten möchte...

Im Prinzip zeichne ich die gif per canvas auf eine bitmap mit der Hintergrundfarbe der ursprünglichen Grafik (steht bei der Gif im Header).
Hinterher übertrage ich die Pixel einfach nicht, die diese Farbe besitzen. Die Übrigen zerlege ich in die rgb-werte und nivelliere diese wie es beliebt mit dem Hintergrundpixel und fertig ist der Lack!

Trotzdem vielen Dank für eure Beteiligung an meinem Problem...

MfG Jörn


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.

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