Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#1

FTGifAnimate transparenz - gerendertes überlagert sich

  Alt 3. Sep 2005, 23:32
Ich habe mir die Gif-Komponenten von http://finn.mobilixnet.dk/delphi/ heruntereladen und versuche ein animiertes Gif zu erstellen.

Das klappt auch prima, solange die Transparenz ausgeschalten ist. Sobald ich die aber aktiviere, überlagert sich der Text, den ich per canvas.textout auf die einzelnen Frames male, auf mir unerklärliche Weise.

Ein bisschen Code:

Delphi-Quellcode:
GifanimateBegin // anfang des rendervorgangs
gr.Assign(ISource.Bitmap); //gr:TBitMap
GifAnimateAddImage(gr,SBtranscolor.Font.Color,delay); //einmal ohne Text
for i:= 0 to frames -1 do
 begin
  gr.Assign(ISource.Bitmap); //der hintergrund wird zugewiesen
  gr.canvas.brush.style:=bsclear //Fontausgabe transparent - wie ging das nochmal elegant?
  gr.Canvas.Font:=EScrollText.Font; //Font einstellen
  gr.Canvas.TextOut(gr.Width-progress,Offset,Text); //Ins Bild schreiben

  GifAnimateAddImage(gr,SBtranscolor.Font.Color,delay); //Bild wird zum Frame

  progress:= progress + pPF;
 end;
Im Anhang einmal ohne, einmal mit Transparenz.

Was ich mir überhaupt nicht erklären kann: gr wird jedes mal komplett neu mit dem Hintergrund belegt, und nur einmal mit Text beschrieben - wie kann es da überhaupt zu diesen Überlagerungen kommen? Selbst wenn es Interlaced ist...

[edit=MrSpock]Code auf Wunsch des Erstellers geändert. Mfg, MrSpock[/edit]
Angehängte Grafiken
  
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat