Lavorare con le immagini GIF in Delphi

Anche se Delphi non supporta in modo nativo i formati di file di immagini GIF (come BMP o JPEG), ci sono alcuni ottimi componenti (gratuiti) disponibili in rete, che aggiungono la possibilità di visualizzare e manipolare immagini GIF in fase di esecuzione e di progettazione tempo per qualsiasi applicazione Delphi.

Nativamente, Delphi supporta immagini BMP, ICO, WMF e JPG. Questi possono essere caricati in un componente compatibile con la grafica (come TImage) e utilizzato in un'applicazione.

È importante notare che, a partire dalla versione 2006 di Delphi, il formato GIF è supportato dal VCL. Per utilizzare immagini GIF animate è comunque necessario un controllo di terze parti.

Le GIF - o i formati di interscambio grafico - sono il formato grafico (bitmap) più ampiamente supportato sul Web, sia per immagini fisse che per animazioni.

Usando in Delphi

Nativamente, Delphi (fino alla versione 2007) non supporta le immagini GIF, a causa di alcuni problemi legali sul copyright. Ciò significa che quando si rilascia un componente TImage su un modulo, utilizzare l'editor di immagini (fare clic sul pulsante con i puntini di sospensione nella colonna Valore per le proprietà, come la proprietà Picture di TImage) per caricare un'immagine in TImage, si non ha un'opzione per caricare immagini GIF.

Fortunatamente, ci sono alcune implementazioni di terze parti su Internet che forniscono pieno supporto per il formato GIF:

  • TGIFImage: gratuito con sorgente (una versione del TGIFImage di Anders Melander portato su Delphi 7). Completa implementazione TGraphic del formato grafico GIF. Legge, scrive e visualizza GIF animate e trasparenti e può convertire da e verso qualsiasi formato supportato da TGraphic (ad esempio TBitmap, TJPEGImage, TIcon, TMetaFile, ecc.). Implementa la specifica GIF87a e GIF89a completa e le estensioni GIF più comuni. Le funzionalità avanzate includono:
    • Si integra con TPicture per aggiungere il supporto GIF ai componenti TImage, TOpenPictureDialog e TSavePictureDialog. Funziona anche in fase di progettazione.
    • Importa immagini con più di 256 colori utilizzando la quantizzazione del colore e 6 diversi metodi di dithering (ad es. Floyd-Steinberg).
    • Motore di disegno multi-thread.
    • L'ottimizzatore GIF riduce le dimensioni delle tue GIF.
    • Convertitore GIF in AVI e AVI in GIF.
  • Libreria di immagini GraphicEx: un addendum a Graphics.pas di Delphi per consentire all'applicazione di caricare molti formati di immagini comuni. Questa libreria è progettata principalmente per caricare immagini come sfondo (pulsanti, moduli, barre degli strumenti) e trame (DirectX, OpenGL) o per scopi di esplorazione e modifica delle immagini purché non sia necessario salvare le immagini. Attualmente, solo TTargaGraphic supporta anche il salvataggio di un'immagine. GraphicEx è open source sotto la Mozilla Public License (MPL).

Questo è tutto. Ora tutto ciò che devi fare è scaricare uno dei componenti e iniziare a utilizzare le immagini gif nelle tue applicazioni.
Ad esempio puoi:

  • Memorizza le immagini GIF in una tabella di database. Avrai bisogno dei "numeri magici" dell'immagine GIF.
  • Mostra grafica GIF come glifo su uno SpeedButton.
  • Memorizza la grafica GIF e un file HTML come risorsa all'interno di am exe.