5

TImage を使用してアニメーション GIF を Firemonkey HD 形式で表示しようとしていますが、アニメーションの方法が見当たりません。

タイプが異なるため、Vcl.Imaging.gifImg の使用はオプションではありません。

誰かがこの問題を解決する方法、または Firemonkey で GIF 画像をアニメーション化するためのコンポーネントを提案できますか?

今のところ見つけた唯一の方法は次のとおりです。

  1. TGIFImage インスタンスを作成し、GIF 画像を読み込みます

  2. gif.images をループします。

    を。現在の画像をストリームに保存

    b. Image1.bitmap.loadFromStream [Image1 は FMX:TImage]

よりスマートなソリューションはありますか?

4

1 に答える 1

5

TBitmapListAnimationは、アニメーションの各フレームが長いストリップ内にある単一の画像で使用できます。たとえば、アニメーションに 4 つのフレームがあり、32px x 32px の場合、幅 128px x 高さ 32px の画像を作成し、各フレームを並べて追加する必要があります...

次に、 TImageをフォームに追加します (これにビットマップをロードする必要はありません)。

TImage を親としてTBitmapListAnimationを追加します。

AnimationBitmapをダブルクリックして、アニメーション イメージ ストリップをロードします。

PropertyNameをドロップダウンし、Bitmap を選択します

この例では、 AnimationCountを 4 に、AnimationRowCountを 1 に設定します。

有効をtrueに設定

TBitmapListAnimation は、アニメーションのフレーム レート、反転、ループ、および補間を適切に制御します。FireMonkey2 で .gif をアニメーション化する方法が見つかりませんでしたが、アニメーション化された .gif を「カートゥーン ストリップ」に変換する手段があれば、これはアニメーションを行う良い方法です。

PS これは Delphi XE3 です...そのため、これらのコンポーネントが以前のバージョンに存在していたかどうかはわかりません。

于 2012-11-16T14:53:00.510 に答える