Henry - Do 24.01.08 14:32
Titel: [TImage / TGifimage] Problem mit Canvas bei Gif-Datei
Hallo,
ich programmiere gerade an einem Programm, bei dem ich auf einem TImage(TGifImage) markierungen an bestimmten Punkten setzen möchte. Die Grafik wird dann als JPG gespeichert.
Zur Zeit mache ich das wie folgt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| Image1.Picture.LoadFromFile(ExtractFilePath(paramstr(0)) + 'zubehör/Grafikdatei.bmp');
... Image1.Canvas.Brush.Color := CLSilver; Image1.Canvas.Ellipse(XPos1, YPos1, XPos2, YPos2); ...
Procedure SaveImageJPG(grafik:TImage); VAR Dateiname : String; Jp : TJpegImage; begin If (InputQuery('Dateiname','Geben sie einen Dateinamen ein!',Dateiname)) and not (Dateiname = '')Then Begin Jp := TJpegImage.Create; Try With Jp do Begin Assign(grafik.Picture.Bitmap); CompressionQuality := 100; SaveToFile('e:\' + Dateiname +'.jpg'); End; Finally jp.free; End; end Else Showmessage('Speichervorgang wurde durch Benutzer abgebrochen,'+ #13 + 'oder es Wurde kein Dateiname eingegeben!');
end; |
So funktioniert das einwandfrei.
Nun habe ich aber vor die Grafik nicht als *.bmp Datei zu laden sondern als *.gif, da ich bestimmte Bereiche der Grafick tranparent haben möchte.
Lade ich nun die *.gif Datei in das Image, wird diese einwandfrei geladen und angezeigt.
Versuche ich aber mit den oben genannten Befehlen auf das Canvas zu zeichnen, bekomme ich die Meldung das dies nur auf einem Bitmap möglich sei.
Speichern als *.jpg kann ich die Grafik mit meiner Procedure auch nicht mehr.
Wie müßte ich vorgehen, wenn ich auf dem Canvas des Image zeichnen möchte bei geladener *.gif Datei und dies dann als JPG speichern?
Danke schon einmal im Voraus für die Hilfe