カテゴリー別

お絵描き、デザイン

写真、動画関連ソフト

アメーバピグ専用ソフト

ホームページ関連

画像処理

スキャナー用

SEO 関連

お楽しみ

その他

過去ログ

2016年09月02日(金)

ミルノ PC フォトフレーム 2.0 実装中、GIF アニメーション表示処理

写真閲覧ソフトのミルノ PC フォトフレーム
は、c# というプログラミング言語で実装したのですが、
現在、c++ で書きなおす作業を、こつこつ、やってます。

写真をミルノに!

とか、覚えやすいでしょ。

で、昨日、今日と、アニメーション GIF を
表示する機能を実装してました。

なかなかやっかいな仕様で、だいたい終わりましたけど、
現在は GIF のプロパティを自前で読み込む処理が途中です。

GIF のプロパティは、WIC (Windows Imaging Component)
ってので読めるんですが、Windows Vista だと読めなかったので、
1.X でも、自前で読み込む処理が実装されてます。ま、それの移植ですね。

これについては、そんなに難しくないのですが、
そこそこコード量があるので、面倒ですわ。

アニメーション GIF の表示機能は、1.x でもあるので、
気になるかたは試用してみてくださいね。

何枚も同時に表示させると、同時に動きますが
異常に長いやつだと、メモリーが足りないかも。

日本語の最新版はこちらのページから、ダウンロードできます
You can download the latest version of Miruno PC Photoframe here.

ご意見・ご要望はこちらからどうぞ
You can contact me by this mail form.

・・・

アニメーション GIF の仕様のどこがやっかいかというと、
なんといっても、 この Q&A にもある、disposalMethod でしょうね。

disposal ってのは後処理ってな意味ですから、
描画した後、描画先をどうするかの指定です。

私の解釈では、0 (Undefined) と 1 (None) は同じで何もしないです。
ただ、何もしないといっても、描画先の画像を残したまま、
その上に描画しちゃいなさい。ということなので、
例えば、5 フレーム目の独立した画像を生成するには、
4 フレーム目の結果画像に 5 フレーム目の画像データーを
合成する必要があります。このとき参照する disposalMethod
は 4 フレーム目のやつなので、注意です。

2 (Background) は、描画した部分を背景色でクリアしろです。
例えば、5 フレーム目の独立した画像を生成するには、
4 フレーム目の結果画像から、4 フレーム目で描いた部分を
背景色でクリアーした後、5 フレーム目を合成する必要があります。
やはり、参照する disposal は、4 フレーム目のやつですね。

3 (Previous) は、前の状態に復元せよです。
例えば、5 フレーム目の独立した画像を生成するには、
3 フレーム目の結果画像に、5 フレーム目を合成します。
4 フレーム目で描いた結果を元に戻せば、
3 フレーム目の結果になるからです。

上の Q&A にはありませんが、4 もあります。
4 (NonCompose) は、合成不要なので、読み込んだ
画像データーがそのまま結果画像と一致する
ということなので、独立したフレームデーターを
生成するのは最も簡単ですね。

ちなみに、厳密にこの仕様をとらえると、
ループの 1 週目と2 週目で絵が変わることも
ありえそうですが、それは無視してます。

さらに、背景色のパレットインデックスは
ヘッダーにあってさ〜。パレットは、
フレーム毎にも、用意できるのよね。

ほら〜、面倒そうな仕様でしょ。

ミルノ PC フォトフレーム
ミルノ PC フォトフレームのダウンロード
ミルノ PC フォトフレームの更新履歴
ご意見・ご要望連絡窓口


コメント
コメントする