Autor Beitrag
Zeph
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 01.08.07 21:43 
Hi, ich will hingehen und zur Laufzeit des Programmes ein Bitmap erstellen und speichern. Dieses Bitmap soll eine transparente Farbe bekommen. Transparente Farben sind bei Delphi "eigentlich" kein Problem, jedoch ist nicht das gemeint, was ich meine. Die transparente Farbe, die ich in Delphi einstellen kann, bewirkt sich nur auf die Anzeige in der Form bzw. im TImage aus, in der Datei die anschließend gespeichert wird, nicht.

Mit transparenter Farbe meine ich jedoch, die Farbe die auf dem Farbindex 0 steht. Habe nun etliche Seiten die in Verbindung mit Farbpalette, TImage und Delphi abgeklappert, finde jedoch nix entsprechendes, wobei ich davon ausgehe, das es eine Standartfunktion von TImage ist bzw. seien sollte. Hat da jemand ne kleine Hilfe für mich?

Also nochmal kurz, ich will auf die Farbpalette eine TImages zugreifen und den Farbindex 0 meinen Wünschen entsprechend setzen. Wie bzw. womit mache ich dies ambesten/überhaupt?
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: Do 02.08.07 08:05 
naja, die funktion image.transparent:=true nimmt den ersten pixel (ganz oben links) und macht alle pixel, die den gleichen farbindex haben transparent (wobei ich jetzt nicht weiß, ob nicht alle "eck-pixel" die gleiche farbe brauchen, hab auch kein delphi zum ausprobieren da)

oder meinst du was anderes?

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
Zeph Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 08.08.07 00:34 
über diese Funktion bin ich bereits gestolpert, jedoch wird dabei nicht das Resultat erziehlt was ich gerne haben würde.
Wenn man ein Bild in Photoshop/PaintShopPro auf eine Farbtiefe von 8Bit heruntersetzt, kann man eine Farbe bestimmen, die fortan als transparente Farbe erkannt und nichtmehr angezeigt wird. Dies wird dadurch gespeichert, das die ausgewählte Farbe auf dem Farbindex 0 in der Farbpalette gespeichert wird. Gehe ich hin und setz das ganze mittels TransparentColor := true, kann ich zwar die Farbe auswählen/einstellen, welcher in der Form nicht sichtbar sein soll, eine änderung in der Farbpalette bringt das jedoch nicht mitsich.
Also um die Frage nochmal auf einen Punkt zu bringen, wie schaffe ich es, auf die Farbpalette einer TImage Komponente zuzugreifen bzw. in der gespeicherten *.bmp Datei die Farbpalette umzuschreiben?
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: Mo 13.08.07 16:09 
naja, ich hab mit transparenz nich so viel am hut, deshalb nur mal so ins blaue geraten: setz ganz einfach alle Pixel mit dem Farbindex, der verschwinden soll auf 0 (so wie du das beschreibst, glaub ich machen das Photoshop/PaintShopPro auch so). nur mal zum veranschaulichen, was ich meine:
ausblenden Delphi-Quelltext
1:
2:
3:
for x:=0 to Image.Width do
  for y:=0 to Image.Height do
    if Image.Canvas.Pixel[x,y]=NewTransparentColor then Image.Canvas.Pixel[x,y]:=0;

hab jez kein delphi zur hand aber müsste funktionieren

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Mo 13.08.07 16:41 
user profile iconZeph hat folgendes geschrieben:
Also um die Frage nochmal auf einen Punkt zu bringen, wie schaffe ich es, auf die Farbpalette einer TImage Komponente zuzugreifen bzw. in der gespeicherten *.bmp Datei die Farbpalette umzuschreiben?

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems