2008年10月05日

アニメGIFの読み込み[Java]

JavaでアニメGIFを読み込むプログラムを書きました。
ホントにやりたかったことは、アニメGIFを読み込んで
サイズを変更して出力することなのですが、
自分が使っているPCはMacでJavaのバージョンが1.5.0_16。
GIF書き込みがサポートされてるのは1.6から?だったかで
書き出せません。ライブラリを追加すれば行けると思いますが
訳あってライブラリは使いたく無い、と。

で、Javaのバージョンも1.6以降をサポートしてるのは
Intel Macの64bit版のみ。普通のでもSoyLatteを使えば行けるらしいですが
今回は時間がなかったのでちょっとスルー。

なので、アニメGIFを1フレームずつ読み込んで、
1フレームずつjpgで出力するプログラムです。



package test;

import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import java.util.Vector;

import javax.imageio.ImageIO;
import javax.imageio.ImageReader;

import javax.imageio.stream.FileImageInputStream;
import javax.imageio.stream.ImageInputStream;

public class gifAnim {
public static void main(String args[]) {
try {
ImageReader irReader = ImageIO.getImageReadersByFormatName("gif").next();
ImageInputStream isIn = new FileImageInputStream(new File("input.gif"));

irReader.setInput(isIn);

List <BufferedImage> liImage = new Vector<BufferedImage>();

// アニメGIFのフレーム一枚一枚を読み込み
for (int i = 0;; i++) {
try {
liImage.add(irReader.read(i));
} catch (IndexOutOfBoundsException ioe) {
break;
}
}

for (int i = 0; i < liImage.size(); i++) {
ImageIO.write(liImage.get(i), "jpg", new File("output" + i + ".jpg"));
}

isIn.close();
isIn = null;
} catch (Exception e) {
e.printStackTrace();
}
}
}


ネットで調べてみるとBufferedReaderはアニメGIFに
対応してる?みたいなことを書いてあったのですが、
アニメGIFを読み込んで、そのまま書き出しても
アニメGIFの最初のフレームしか書き出されなくて
もうどーにもこうにもわからなくなったので
一フレームずつ読み込んで、一フレームずつ変換して
それらをまとめてアニメGIFにする方法を取ろうと思います。
で、それが出来たらまた載せますー。


来週はActionScriptをしよー
posted by 夏ミカン at 22:02| 沖縄 ☁| Comment(5) | TrackBack(0) | Java | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんばんは,コツブです。

gifですか,すごいですね。
しかもライブラリーに頼らず,
ご自分で作成されていることに,感激しました。

バラバラにしたということは,
jpgで画像の大きさを,変えるんですね。

gifに統合する手順は結構興味があるので,
楽しみに待ってます。

では,また。
Posted by コツブ at 2008年10月05日 23:35
→コツブさん 自分のブログにも遊びに
来てくださってありがとうございます! ImageMagick等を使う方法も考えたのですが
できるだけ外部ツールも使いたくないなぁと思い
それならライブラリを使わないでやってみるか!
と勝手に活き込んでやっているだけなので
何だかお恥ずかしい限りです。
(良いライブラリが見つからなかったというのもありますが...)
大したものではありませんが近いうちに
一枚一枚の画像をサイズ変更してアニメGIFにまとめるプログラムも書きますので
また遊びに来てくれると嬉しいです。
Posted by 夏ミカン at 2008年10月06日 20:14
はじめまして(・∀・)
プログラミング修行中のじゅんです。

がんばってください、応援します♪


Posted by 小さなプログラマー at 2008年10月15日 17:32
→小さなプログラマーさん
はじめまして!
自分もまだまだ修行中の身です。
お互い頑張りましょうね!
Posted by 夏ミカン at 2008年10月18日 22:40
はじめまして!
私は 20代の未婚女性です。
ブログ内容とは異なるかもしれませんが、
私はPC知識が全くないのでプログラマ友達が欲しくて探しております。
もし宜しければメール頂けませんでしょうか。
どうかよろしくお願致します。
Posted by 瀬川 at 2008年11月12日 06:54
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。