DOBON.NETプログラミング道掲示板
(現在 過去ログ2 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33407 / inTopicNo.1)  背景が透明のアニメGIFを作成したい
  
□投稿者/ gif素人 一般人(1回)-(2016/07/02(Sat) 19:15:11)
  • アイコン環境/言語:[Windows7] 
    分類:[.NET] 

    こんにちは。
    このページの

      GIFアニメーションを作成する
      http://dobon.net/vb/dotnet/graphics/createanimatedgif.html

    この関数を利用させて頂いて、

      public static void SaveAnimatedGif(string fileName,
      Bitmap[] baseImages, UInt16 delayTime, UInt16 loopCount)

    10枚の透明PNG画像を読み込んで背景が透明のアニメGIFを作成しました。
    しかし、そのアニメGIFを表示させてみると、各フレームの画像が重ね書きされてしまいます。
    一方、
    //詰め込み欄 透過色指標を使う時は1
    bs[3] = 0x00;
    の設定で背景を透明にしない場合には背景色が黒いアニメGIFが出来ました。
    これだと表示しても重ね書きのような症状は起こらずにアニメが期待した動きをします。

    私としては、背景が透明なアニメGIFを作りたいのですが、前者の場合ですと全部の画像が重ね書きされてしまいますし、後者ですと背景が黒く透明になりません。

    冒頭で参考にさせて頂いている記事の手法では、背景が透明な普通の(重ね書きの起こらない)アニメGIFを作成する事は出来ませんか?
引用返信 削除キー/
■33408 / inTopicNo.2)  Re[1]: 背景が透明のアニメGIFを作成したい
□投稿者/ Hongliang 大御所(517回)-(2016/07/02(Sat) 19:35:33)
  • アイコン// 仕様をチラ見しただけだけど
    http://www.snap-tck.com/room03/c02/cg/cg04_02.html
    グラフィック制御拡張ブロックの表示処理パラメータ、つまり背景透明フラグを含むバイトですが、ここの4-2ビット目のDisposableMethodを3辺りにすればGIFファイル的にはいいかも。
    まあ、この値をどう扱うかは表示するアプリケーション次第なんですけど。
引用返信 削除キー/
■33409 / inTopicNo.3)  Re[1]: 背景が透明のアニメGIFを作成したい
□投稿者/ Azulean 大御所(469回)-(2016/07/02(Sat) 19:40:16)
  • アイコン2016/07/02(Sat) 19:49:49 編集(投稿者)

    No33407に返信(gif素人さんの記事)
    > 10枚の透明PNG画像を読み込んで背景が透明のアニメGIFを作成しました。
    > しかし、そのアニメGIFを表示させてみると、各フレームの画像が重ね書きされてしまいます。

    ロジックを読むと見えてくるかもしれませんが、作成処理は 1 枚ずつ gif にしているだけなので、重ね書きになる要素はなさそうです。
    実際、透過しなければ黒になるということからも、作成時点で重なっているという説は否定できそうです。


    この 2 点を踏まえると、次の 2 通りの予想ができます。

    1.再生側が透明なところを重ねていくような実装になっている
    2.今回着目した点以外の箇所にファイルフォーマット上の特性がある

    2についてはファイルフォーマットのアニメ GIF 独自の書き込みをしている箇所のコメントを見る限り、そういった操作をできる部分はありませんので、可能性は低いとみるべきでしょう。

    よって、1の可能性が出てくるわけですが、何で再生しているのでしょうか?
    そして、その再生しているソフト、方法は別のアニメ GIF 対応ソフトで透過させた場合はきちんと透過するのでしょうか?

    -----(追記)
    Hongliang さんが挙げている情報ベースで試された方が良さそうです…。orz
    この場合だと、bs[3] は 0x01 じゃなくて、0x05 か 0x09?
引用返信 削除キー/
■33410 / inTopicNo.4)  Re[2]: 背景が透明のアニメGIFを作成したい
□投稿者/ gif素人 一般人(2回)-(2016/07/02(Sat) 20:38:57)
  • アイコンNo33408に返信(Hongliangさんの記事)
    > // 仕様をチラ見しただけだけど
    > http://www.snap-tck.com/room03/c02/cg/cg04_02.html
    > グラフィック制御拡張ブロックの表示処理パラメータ、つまり背景透明フラグを含むバイトですが、ここの4-2ビット目のDisposableMethodを3辺りにすればGIFファイル的にはいいかも。

    教えて頂いた方法で期待通りの透明GIFができました。
    IE11などのブラウザで正常に表示できました。
    的確な情報、大変ありがとうございました。助かりました。


引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -