Swing/AnimatedGif のバックアップ(No.4)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/AnimatedGif へ行く。
- 1 (2007-05-14 (月) 19:32:29)
- 2 (2009-05-14 (木) 19:32:37)
- 3 (2009-05-14 (木) 21:14:04)
- 4 (2010-12-12 (日) 23:18:31)
- 5 (2013-02-06 (水) 02:12:30)
- 6 (2013-08-17 (土) 01:08:37)
- 7 (2014-12-02 (火) 15:57:05)
- 8 (2015-06-22 (月) 17:59:29)
- 9 (2016-05-26 (木) 14:23:51)
- 10 (2017-09-01 (金) 17:39:02)
- 11 (2018-09-04 (火) 15:03:29)
- 12 (2018-10-15 (月) 13:18:28)
- 13 (2020-10-13 (火) 18:26:58)
- 14 (2022-07-29 (金) 11:29:47)
- 15 (2022-11-07 (月) 17:56:02)
TITLE:Animated GIFでのコマ描画時処理
Posted by terai at 2007-05-14
Animated GIFでのコマ描画時処理
JLabelなどで使用できるAnimated GIFファイルをテストします。
- &jnlp;
- &jar;
- &zip;
#screenshot
サンプルコード
JLabel label1 = new JLabel("何もしない ",
new ImageIcon(getClass().getResource("no_disposal_specified.gif")),
JLabel.LEFT);
JLabel label2 = new JLabel("そのまま残す ",
new ImageIcon(getClass().getResource("do_not_dispose.gif")),
JLabel.LEFT);
JLabel label3 = new JLabel("背景色でつぶす ",
new ImageIcon(getClass().getResource("restore_to_background_color.gif")),
JLabel.LEFT);
JLabel label4 = new JLabel("直前の画像に戻す",
new ImageIcon(getClass().getResource("restore_to_previous.gif")),
JLabel.LEFT);
解説
Animated GIFで、次のコマを描画する時、直前の画像を異なる方法で消去するAnimated GIFファイルを作成し、これらをJLabelに貼り付けてアニメーションをテストしています。上記のように透過色を使用する場合、Swingでは、3番目の「背景色でつぶす」にしておかないと残像が出てしまうようです。
- 何もしない
- No disposal specified. The decoder is not required to take any action.
- そのまま残す
- Do not dispose. The graphic is to be left in place.
- 背景色でつぶす
- Restore to background color. The area used by the graphic must be restored to the background color.
- 直前の画像に戻す
- Restore to previous. The decoder is required to restore the area overwritten by the graphic with what was there prior to rendering the graphic.
参考リンク
- Cover Sheet for the GIF89a Specification
- 23. Graphic Control Extension. の、iv) Disposal Method から説明を引用しています。
- Giam ダウンロードのページ
- Giamを使って、各Animated GIFを生成しています。