Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Gif-Bild mit Transparenz, Anzeige unter Win2k (https://www.delphipraxis.net/161210-gif-bild-mit-transparenz-anzeige-unter-win2k.html)

tkoenig 22. Jun 2011 16:49

Gif-Bild mit Transparenz, Anzeige unter Win2k
 
Liste der Anhänge anzeigen (Anzahl: 2)
Mahlzeit zusammen,

ich habe bei (nicht nur) einem Tool, das ich für meinen Arbeitgeber programmiere, eine Art Headline entworfen, die prinzipiell aus einen TImage besteht, welches ein .gif-Bild mit ein paar transparenten Flächen zugewiesen bekommt. Im OI habe ich "transparent" auf true gesetzt, alles funktioniert ab Windows XP einwandfrei, unter Windows 7 siehts auch gut aus. Jetzt habe ich das Tool zum Test bei einem Kunden gestartet, welcher Windows 2000 einsetzt, und traute meinen Augen nicht, als plötzlich alles, was vorher im gif weiß war, offensichtlich auf Tranzparenz geschaltet wurde und mein eingebasteltes Logo jetzt ziemlich grässlich aussieht. (Screenshots im Anhang)

Wer kann mir einen Tipp geben, wie ich dieses Problem löse?

MfG
tkoenig

WM_CLOSE 22. Jun 2011 17:34

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k
 
Als Notlösung vielleicht das Pixel oben links in einer ein klein wenig anderen Farbe machen, dann ist nur das transparent.
(Ohne Garantie)

tkoenig 22. Jun 2011 19:09

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k
 
Hallo WM_CLOSE, danke für die Antwort, das hilft mir aber leider nichts, da oben links das Pixel in der Grafik ja schon als transparent dargestellt ist. Ich möchte ja gerne, dass nur die transparenten Bereiche des .gifs auch transparent dargestellt werden und nicht die weißen Bereiche. Transparente Bereiche sind die Ecken (abgerundet) und an jedem Rand ca. 3 Pixel.

Ich habe auch schon überlegt, ob ich die Bereiche, die bis jetzt transparent sind, einfach in clButtonFace (oder wie sich das schimpft, habe gerade kein Delphi da), also hellgrau, in der Grafik färbe, dummerweise werden auch die Formular-Farben in den unterschiedlichen Windows-Editionen unterschiedlich dargestellt, was dann erst recht doof aussehen würde.

Vielleicht habe ich auch einfach nur eine Property übersehen, die man anpassen könnte, jemand eine Idee?

MfG
tkoenig

Ralf Kaiser 22. Jun 2011 19:20

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k
 
Also WM_CLOSE hatte schon (fast) Recht.

Er meinte folgendes: Bei einem TImage bestimmt die Farbe des Pixels ganz links unten (WM_CLOSE schrieb "oben", daher das "fast") welche Farbe transparent dargestellt wird. Ist dieses Pixel zum Beispiel grün werden alle grünen Teile des Bildes transparent dargestellt.

Wenn du nun das Pixel links unten anders einfärbst dann wird der Rest nicht mehr transparent dargestellt und das eine andersfarbige Pixel fällt nicht auf.

tkoenig 22. Jun 2011 19:31

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k
 
Zitat:

Zitat von Alfi001 (Beitrag 1107799)
Also WM_CLOSE hatte schon (fast) Recht.

Er meinte folgendes: Bei einem TImage bestimmt die Farbe des Pixels ganz links unten (WM_CLOSE schrieb "oben", daher das "fast") welche Farbe transparent dargestellt wird. Ist dieses Pixel zum Beispiel grün werden alle grünen Teile des Bildes transparent dargestellt.

Wenn du nun das Pixel links unten anders einfärbst dann wird der Rest nicht mehr transparent dargestellt und das eine andersfarbige Pixel fällt nicht auf.

Und warum wird das weiß in der Grafik nur bei Win2k transparent dargestellt, obwohl das Pixel unten links nicht weiß ist? Ich verstehe die Logik dahinter irgendwie nicht :oops:

WM_CLOSE 22. Jun 2011 19:40

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k
 
Oxh könnte mir vorstellen, dass das GIF - Handling inWin 2k anders aussieht. Da hat sich in XP eineiges getan.
Das mit dem einen Pixel wird leider je nach Gif-implementierung und teilweise auch je nach Grafik unterschiedlich interpretiert:(
Einfach ausprobieren, was anderes hilft nicht. Eigentlich kann man in einem GIF- Bild die Transparent-Farbe selbst definieren, aber ob das jeder Viewer kapiert...

SirThornberry 23. Jun 2011 12:30

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k
 
Ich vermute fast das es nicht an der Windowsversion liegt sondern an der Farbtiefe?! Dadurch könnte es passieren das eigentlich unterschiedlichfarbige Pixel plötzlich die gleiche Farbe bekommen.
Aber davon abgesehen sollte die Transparent-Eigenschaft vom TImage doch hier nicht benutzt werden oder setzt dies nur die Transparent-Eigenschaft von TGraphic (falls es diese überhaupt gibt)?

tkoenig 23. Jun 2011 14:39

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k
 
Korrekt, es liegt an der Farbtiefe. Habe mir mal eine virtuelle 2k-Version installiert (immer diese nostalgischen Kunden :D), mit 32-bit Farbtiefe ist alles super, mit weniger wird die Transparenz, auch unter XP, auf das weiß übertragen. Das Pixel links unten hat da leider auch nichts geholfen.
Zitat:

Zitat von SirThornberry (Beitrag 1107899)
Aber davon abgesehen sollte die Transparent-Eigenschaft vom TImage doch hier nicht benutzt werden [...]

Warum nicht? Wozu ist die sonst da?
Und wie löse ich am elegantesten das Problem mit der Farbtiefe? Ein Umweg über Bitmap wie hier? Das scheint aber nicht so ganz auf mein Problem zu passen.

[edit]Das Problem könnte natürlich auch bei unserer Remote-Support-Software liegen.... Vllt wird dort der "gegnerische" Desktop nur mit 16-bit übertragen, um Bandbreite zu sparen... sehr mysteriös *grübel*[/edit]
[edit2]Nein, es liegt nicht an der Remote-Support-Software, habe ein bisschen rumexperimentiert, es liegt tatsächlich an der Farbtiefe des Zielsystems.[/edit2]

tkoenig 27. Jun 2011 16:29

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k
 
Mahlzeit zusammen,

ich hab ein bisschen rumexperimentiert, jetzt funktioniert es so, wie es soll.

Falls jemand das selbe Problem haben sollte:
BMP-Dateien verwenden, keine schöne Lösung, aber es funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 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