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