Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - In einem Image alle Weiß-Bereiche transparent machen
stefanstp - Do 21.11.02 12:06
Titel: In einem Image alle Weiß-Bereiche transparent machen
Ich möchte ein Image auf meiner Form legen und zwar soll dies ein schöner Rahmen sein. Alle Bereiche die weiß sind, sollen transparent sein. In der Image-Componente gibt es dafür auch die Funktion "Transparent".
Wenn ich die auf "True" setze, passiert so gut wie gar nichts, nur ein paar Pixel die weiß sind, werden transparent gemacht, aber eben nicht alles.
Woran kann dies liegen? Wie schaffe ich es, das wirklich alle weiß-Bereiche verschwinden?
Wer kann helfen?
Danke im Voraus
STEFAN
Alfons-G - Do 21.11.02 13:09
Hi,
die Eigenschaft transparent macht den Hintergrund des Bildes transparent. Wenn die restlichen weissen Flächen Deiner Bitmap nicht auf dem Hintergrund liegen, werden sie nicht berücksichtigt.
Du musst also den Rahmen im Zeichenprogramm nochmal nachbearbeiten und alle durchsichtigen Bereiche mit der Hintergrundfarbe nachmalen, bzw. das Vordergrung-Weiss mit dem Radiergumme löschen.
:idea:
stefanstp - Do 21.11.02 13:19
Titel: Nachfrage...
Irgendwie habe ich das leider noch nicht ganz verstanden.
Ich habe einen Rahmen. Der ist sagen wir mal scharz. Da der Rund ist, ist alles außen weiß (als Photoshopdatei transparent ==> wird ja beim umwandeln in weiß konvertiert).
Jetzt macht er aber halt das Weiß nicht transparent. Bei Icons klappt das komischerweise immer super. Da hatte ich nie Probleme.
Oder heißt das, das ich den schwarzen Rahmen innen komplett schwarz machen muß, und somit die meiste Fläche schwarz ist und der rest der weiß ist, automatisch der Hintergrund ist, und Delphi dann erkennt, das diese Fläche transparent zu machen ist???
Hm???
a - Do 21.11.02 14:43
Standardmäßig richtet sich die transparente Farbe nach der Farbe des Pixel in der unteren, linken Ecke.
Um das zu ändern, musst Du einfach folgenden Code in das FormCreate Ereignis packen:
Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.FormCreate(Sender: TObject); begin Image1.Picture.Bitmap.TransparentMode := tmFixed; Image1.Picture.Bitmap.TransparentColor := clWhite; Image1.Picture.Bitmap.Transparent := True; end; |
stefanstp - Do 21.11.02 14:55
Titel: Besten Dank
...werde ich doch gleich mal ausprobieren.
STEFAN
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!