![]() |
Transparenz-Farbe von TImage ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, ich versuche in Delphi
![]()
Delphi-Quellcode:
Allerdings wird dann nur noch rot angezeigt, was suggeriert, dass die transparente Farbe noch immer weiß ist:
procedure TForm1.Image1Click(Sender: TObject);
var b : TBitmap; begin b := TBitmap.Create(); b.LoadFromFile('Koenig_weiss.bmp'); b.Transparent := true; b.TransparentColor := clRed; Image1.Picture.Graphic := b; end; Anhang 56805 Kann mir irgendjemand sagen, was ich falsch mache? Danke im Voraus :) |
AW: Transparenz-Farbe von TImage ändern
Transparentcolor rot wird bei dem Bild nicht funktionieren, weil in dem Bild nichts rot (= clRed) ist, die überwiegend vorkommende Farbe ist $005334FE.
|
AW: Transparenz-Farbe von TImage ändern
Zitat:
Delphi-Quellcode:
Leider bleibt das Ergebnis unverändert.
b.TransparentColor := $005334FE;
|
AW: Transparenz-Farbe von TImage ändern
Das Bitmap ist erstmal zu groß für das TImage, was man entweder durch setzen von Stretch := True oder AutoSize := True lösen kann;
Weiterhin sollte das TImage ebenfalls ein Transparent := True bekommen. Die TBitmap.TransparentXXX Eigenschaften wirken sich nur auf das Zeichnen aus, nicht auf den Inhalt der Bitmap. |
AW: Transparenz-Farbe von TImage ändern
Zitat:
|
AW: Transparenz-Farbe von TImage ändern
Wobei dort das Tansparent vom Bitmap nicht über eine Farbe, sondern durch ein Pixel (die Farbe des einen Eck-Pixels) bestimmt wird.
![]() Muß es denn auch unbedingt ein Bitmap sein? z.B. PNG oder etwas aus der Familie Vector-Grafiken oder ![]() ![]() ![]() |
AW: Transparenz-Farbe von TImage ändern
Zitat:
Lediglich das Transparent von TImage überschreibt das Transparent der TBitmap bei der Zuweisung auf Picture.Graphic. Deswegen muss das beim Control passend gesetzt sein. |
AW: Transparenz-Farbe von TImage ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Anhang 56806 (zumindest sieht man den König diesmal) Es hatte doch grad noch funktioniert :/ Ich hab den Code zum Testen etwas abgeändert. Siehe:
Delphi-Quellcode:
Hättet ihr vielleicht noch eine Idee? :(
procedure TForm1.Image1Click(Sender: TObject);
var b : TBitmap; pxc: TColor; hxc : string; begin b := TBitmap.Create(); b.LoadFromFile('Koenig_weiss.bmp'); b.TransparentColor := $FE5334; b.Transparent := true; Image1.Picture.Graphic := b; // folgendes wird nicht ausgeführt, was keinen Sinn ergibt, da.... if (Image1.Picture.Bitmap.Canvas.Pixels[0, 0] = $FE5334) then ShowMessage('toll'); pxc := Image1.Picture.Bitmap.Canvas.Pixels[0, 0]; hxc := IntToHex(ColorToRGB(pxc), 6); ShowMessage(hxc); // ...das hier #5334FE (hex) zurückgibt, was ja $FE5334 (delphi) ist end; (Und ja, ich muss eine Bitmap verwenden) (Beim Image ist stretched true und Transparent true) |
AW: Transparenz-Farbe von TImage ändern
Was bringt dich denn auf diese Idee?
Zitat:
Delphi-Quellcode:
function ColorToRGB(Color: TColor): Longint;
begin if Color < 0 then Result := GetSysColor(Color and $000000FF) else Result := Color; end; |
AW: Transparenz-Farbe von TImage ändern
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 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 by Thomas Breitkreuz