AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Gif-Bild mit Transparenz, Anzeige unter Win2k
Thema durchsuchen
Ansicht
Themen-Optionen

Gif-Bild mit Transparenz, Anzeige unter Win2k

Ein Thema von tkoenig · begonnen am 22. Jun 2011 · letzter Beitrag vom 27. Jun 2011
Antwort Antwort
tkoenig

Registriert seit: 16. Mär 2010
Ort: Dresden
19 Beiträge
 
Delphi XE7 Professional
 
#1

Gif-Bild mit Transparenz, Anzeige unter Win2k

  Alt 22. Jun 2011, 17:49
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
Miniaturansicht angehängter Grafiken
screen1.jpg   screen2.jpg  
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k

  Alt 22. Jun 2011, 18:34
Als Notlösung vielleicht das Pixel oben links in einer ein klein wenig anderen Farbe machen, dann ist nur das transparent.
(Ohne Garantie)
Delphi programming

Geändert von WM_CLOSE (22. Jun 2011 um 18:37 Uhr)
  Mit Zitat antworten Zitat
tkoenig

Registriert seit: 16. Mär 2010
Ort: Dresden
19 Beiträge
 
Delphi XE7 Professional
 
#3

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k

  Alt 22. Jun 2011, 20:09
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
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k

  Alt 22. Jun 2011, 20:20
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.
Ralf Kaiser
  Mit Zitat antworten Zitat
tkoenig

Registriert seit: 16. Mär 2010
Ort: Dresden
19 Beiträge
 
Delphi XE7 Professional
 
#5

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k

  Alt 22. Jun 2011, 20:31
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
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#6

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k

  Alt 22. Jun 2011, 20:40
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...
Delphi programming
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k

  Alt 23. Jun 2011, 13:30
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)?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
tkoenig

Registriert seit: 16. Mär 2010
Ort: Dresden
19 Beiträge
 
Delphi XE7 Professional
 
#8

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k

  Alt 23. Jun 2011, 15:39
Korrekt, es liegt an der Farbtiefe. Habe mir mal eine virtuelle 2k-Version installiert (immer diese nostalgischen Kunden ), 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.
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]

Geändert von tkoenig (23. Jun 2011 um 17:18 Uhr)
  Mit Zitat antworten Zitat
tkoenig

Registriert seit: 16. Mär 2010
Ort: Dresden
19 Beiträge
 
Delphi XE7 Professional
 
#9

AW: Gif-Bild mit Transparenz, Anzeige unter Win2k

  Alt 27. Jun 2011, 17:29
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 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