Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi FTGifAnimate transparenz - gerendertes überlagert sich (https://www.delphipraxis.net/52792-ftgifanimate-transparenz-gerendertes-ueberlagert-sich.html)

DGL-luke 3. Sep 2005 22:32


FTGifAnimate transparenz - gerendertes überlagert sich
 
Liste der Anhänge anzeigen (Anzahl: 2)
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]

DGL-luke 4. Sep 2005 22:42

Re: FTGifAnimate transparenz - gerendertes überlagert sich
 
Liste der Anhänge anzeigen (Anzahl: 1)
*push*

Dass es mit brush.style:=bsclear eleganter geht, weiss ich jetzt.

Aber auhc nach einigem rumprobieren konnte ich mein problem nicht lösen... wie bereits gesagt: ohne transparenz geht es, mit transparenz bleibt die alte schrift da wo es vorher transpa... halt mal... könnte es sein, dass die alte bild noch unter der transparenz angezeigt werden? wenn ja, wie kann ich das ändern?

EDIT: ein rewrite(=laden & speichern) mit dem alten CorelPhotopaint 7 hat das ganze ins reine gebracht! :-D

Was macht Corel, was ich nicht mache?! ich habs euch nochmal angehängt.

DGL-luke 8. Sep 2005 16:44

Re: FTGifAnimate transparenz - gerendertes überlagert sich
 
*push*

Noch ein Projekt das ich offenbar auf Eis legen muss :cry:


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