2012-01-09 16 views
5

stavo cercando di convertire un'immagine GIF (Ajax in attesa simili):GIF in AVI con le finestre animare controllo

waiting GIF...

in AVI che verrà utilizzato con il controllo TAnimate (controllo di animazione win32).

Ho provato alcuni strumenti, ma il problema è che l'uscita AVI non è adatta al controllo Animazione o non è trasparente.

Note:

  • Non faccio uso di windows XP Temi manifesta (D5). i Common Avi sono trasparenti anche se il mio programma non è a tema.
  • L'utilizzo della GIF stessa per mostrare l'animazione non è un'opzione.

Conoscete qualche strumento che può aiutarmi con questa conversione?

EDIT:

ho provato ad utilizzare ImageMagic con ffmpeg come descritto here. ma non riesco a impostare ffmpeg per la codifica su msrle.

+0

Sono contento di eseguire il rendering di ciascun fotogramma da parte di 'TImageList' senza alcuna dipendenza da' TAnimate' (e utilizzo l'animazione Ajax molto spesso :) I problemi con il software di conversione sono probabilmente causati da 'TAnimate' non conosco nessuno dei DivX o di tali codec. – TLama

+0

@TLama, scusa ma questa non è un'opzione per me :) – kobik

+0

Quale codec stai usando o che intendi usare per .avi? –

risposta

5

Jasc Animation Shop è in grado di leggere direttamente una GIF animata e scrivere un AVI compresso. Questo è un vecchio programma che sembra non essere più offerto da Corel (che ha acquisito Jasc), ma potresti comunque essere in grado di trovare la versione di prova gratuita ad esempio.

3

Si potrebbe provare the TGIFImage component (scritto per Delphi 5), che sostiene non solo per sostenere GIF animate, ma anche la trasparenza, così come un mezzo per convertire un GIF in un file AVI (e viceversa).

Se fa tutto questo o no non posso dire come non l'ho provato personalmente. Come TLama menzionato nei commenti OP sopra, uso i miei mezzi per riprodurre ogni fotogramma in modo animato (solo il mio utilizza un file RES e un TImage, dove ogni frame è memorizzato come PNG per il pieno supporto semitrasparenza).

+0

come ho già detto, non voglio usare un componente GIF. e davvero non voglio finire di scrivere il mio strumento per convertire i frame GIF in un video RLE :) – kobik

+0

Quello che sto dicendo è che il pacchetto zip collegato afferma di venire con uno strumento per convertire tra GIF e AVI. – LaKraven

+0

Ho raddoppiato controllato. nessuno strumento, o demo che coinvolge la conversione in AVI. – kobik

1

Molti strumenti commerciali eseguono questa conversione, inclusi Corel Photo Paint e altri. È disponibile una versione di prova gratuita per Corel Photo Paint, inclusa nella confezione di Corel Draw. (Attenzione: è enorme e costoso). Non credo che la trasparenza sarà risolta più dalla conversione di Corel Photo Paint che da chiunque altro.

Digitando alcune parole in Google, rivela anche che DSPack da ProgDigy potrebbe essere di aiuto.

L'ultima volta che ho fatto questo, ho abbandonato il tentativo di convertire la trasparenza GIF in AVI-con-trasparenza, perché nessuno strumento di codifica AVI che potessi trovare avrebbe preservato la trasparenza. Quindi la soluzione di lasciarlo come una gif e mettere un nuovo controllo nella tua app (come suggerisce LaKraven) potrebbe essere superiore alla fine, per combatterla.

+2

Penso che la trasparenza funzioni come con Bitmap, basata sul colore in alto a sinistra o in basso a sinistra (che di solito è Fucsia. Mi chiedo come MS sta creando le risorse 'AVI' nel shell32.dll ... – kobik

+0

I credo che tu abbia ragione, ma trattandosi di una "convenzione sviluppatore/win32", la maggior parte degli strumenti di grafica di produzione non la supportano. –

1

Suggerisco di utilizzare il renderer di immagini nativo GDIPlus che può gestire facilmente GIF animate così come molti altri tipi di immagine, compresi i TIFF a più fotogrammi (finora nessun MNG).Sono stato in grado di trovare un componente esempio che anima esempio TImage:

http://www.progdigy.com/forums/viewtopic.php?p=13156

Si prega di notare Sono consapevole del fatto che si sta cercando una soluzione in AVI trasparenza, questo è solo un modo alternativo di presentare all'utente un " progresso ", che sembra essere più leggero (non dipende dalle funzionalità di riproduzione di Windows Media) e flessibile (tale controller di animazione può essere utilizzato su qualsiasi immagine).