![]() |
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
Liste der Anhänge anzeigen (Anzahl: 1)
Irgendwie versag ich hier schon beim einfachsten, TBitmap32, undefinierter begriff.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, GR32_Image; type TForm1 = class(TForm) Image321: TImage32; procedure CromaKey(ABitmap: TBitmap32; TrColor: TColor32); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure CromaKey(ABitmap: TBitmap32; TrColor: TColor32); var P: PColor32; C: TColor32; I: Integer; begin TrColor := TrColor and $00FFFFFF; // erase alpha, (just in case it has some) with ABitmap do begin P := PixelPtr[0, 0]; for I := 0 to Width * Height - 1 do begin C := P^ and $00FFFFFF; // get RGB without alpha if C = TrColor then // is this pixel "transparent"? P^ := C; // write RGB with "transparent" alpha back into the SrcBitmap Inc(P); // proceed to the next pixel end; end; end; end. |
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
uses GR32; ;)
|
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
@Dizzy Danke, das hat mich schon 1, 2 schritte dem Ziele näher gebracht.
Wie wende ich diese Procedure auf TImage32 an?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, GR32_Image,GR32; type TForm1 = class(TForm) Image321: TImage32; procedure CromaKey(ABitmap: TBitmap32; TrColor: TColor32); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.CromaKey(ABitmap: TBitmap32; TrColor: TColor32); var P: PColor32; C: TColor32; I: Integer; begin TrColor := TrColor and $00FFFFFF; // erase alpha, (just in case it has some) with ABitmap do begin P := PixelPtr[0, 0]; for I := 0 to Width * Height - 1 do begin C := P^ and $00FFFFFF; // get RGB without alpha if C = TrColor then // is this pixel "transparent"? P^ := C; // write RGB with "transparent" alpha back into the SrcBitmap Inc(P); // proceed to the next pixel end; end; end; end. |
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
Delphi-Quellcode:
Wenn ich das richtig verstanden habe, dann macht diese Funktion aus bestimmt farbigen Pixeln (z.B. rosa) ein transparentes Bild. Nur dann müsste noch folgende Zeile ersetzt werden:
CromaKey(Image321.Bitmap, $00FF00FF); //rosa soll transparent werden
Delphi-Quellcode:
durch
P^ := C; // write RGB with "transparent" alpha back into the SrcBitmap
Delphi-Quellcode:
:gruebel:
P^ := C or $FF000000; // write RGB with "transparent" alpha back into the SrcBitmap
Sonst wird doch der Alpha-Kanal von den rosa Pixeln weggegeben und nicht dazu... LG, ich |
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
:gruebel: Das ist doch der Sinn der Prozedur: jedem Pixel, das mit dem ColorKey übereinstimmt, wird der Alphakanalwert $00, also voll transparent, zugewiesen.
|
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
Aaaah, jetzt ist der Groschen gefallen. $00 ist ganz transparenz, ich habe geglaubt $FF...
|
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
Ich glaub ich brauch hier echt noch eh bissl Starthilfe,, wie verbinde ich aber die Procedur mit dem Image32?
|
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
Irgendwann lädst du ja dein Bild, ev. bei einem Button-Click oder im OnCreate-Event?
|
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
Etwas grundlegendes:
Bevor du dich mit der GR32-Lib beschäftigst, solltest du die Grundlagen der VCL-Komponenten verstanden haben. TImage und TImage32 sind beide kein Speicher für Bilder, sondern "nur" Controls, die ein ![]() |
Re: Gif bei verkleinerter Bildauflösung farblich stark verä
@ Delphi-Freak
Es wird im OnCreate geladenund eins ist auch schon da, könnte manaber auch noch auf OnCreate umstellen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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