Java Advanced Imagingインストール、画像サイズ取得

JAI http://java.sun.com/javase/technologies/desktop/media/jai/


https://jai.dev.java.net/binary-builds.html からバイナリを取得

wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib.zip
unzip jai-1_1_3-lib.zip
mv jai-1_1_3 ~/lib/java/jai


CLASSPATHに追加しておく。
.profile

export CLASSPATH=$HOME/lib/java/jai/lib:.

pathに . が無いとjavacは通るけど実行時に

Exception in thread "main" java.lang.NoClassDefFoundError:

というエラーが出て困る


ImageSizeJai.java

import javax.media.jai.Interpolation;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import com.sun.media.jai.codec.FileSeekableStream;

public class ImageSizeJai{

    public static void main(String args[]){
	if(args.length < 1){
	    System.out.println("ImageSizeJai input.jpg");
	    System.exit(1);
	}
	ImageSizeJai app = new ImageSizeJai();
	app.getSize(args[0]);
    }

    public boolean getSize(String fileName){
	try{
	    RenderedOp img = JAI.create("stream", new FileSeekableStream(fileName));
	    System.out.println(fileName+" => "+img.getWidth()+", "+img.getHeight());
	}
	catch (Exception e) {
	    e.printStackTrace();
	    return false;
	}

	return true;
    }
}


実行

javac ImageSizeJai.java && java ImageSizeJai sample.jpeg
sample.jpeg => 1000, 1000

参考:今日のAPI: Java Advanced Imaging 〜画像を縮小する〜 - ブログ: 岡崎 - Okazaki's blog