一気にいろんなサイズの画像を用意したい場合があります。アプリのアイコンとか、そんなにこだわらないのに、いろいろなサイズ用意しないとエラーがでる場合とか、一気にいろんなサイズをリサイズしたいことが多くあります。
Rhino/JavaScriptを利用して、一気にいろいろなアイコンサイズを作成するスクリプトは、以下の通り。
「source-icon.png」という名前で大き目のサイズのアイコンを作ってください。そして、Rhinoのjarファイルを用意します。
// 作成サイズ var sizes = [128,48,38,19,16]; var SOURCE_ICON = "source-icon.png"; // JavaのクラスをJavaScriptで使いやすく宣言 var ImageIO = javax.imageio.ImageIO; var Image = java.awt.Image; var FileInputStream = java.io.FileInputStream; var BufferedImage = java.awt.image.BufferedImage; // 画像一覧を読み込みリサイズ var img = loadImage(SOURCE_ICON); for (var i = 0; i < sizes.length; i++) { var sz = sizes[i]; var img2 = resize(img, sz, sz); var fname = "icon" + sz + ".png"; ImageIO.write(img2, "png", new java.io.File(fname)); } print("ok"); // --- // 画像を読み込む function loadImage(fname) { var fis = new FileInputStream(fname); return ImageIO.read(fis); } // 画像をリサイズ function resize(image, dw, dh) { var thumb = new BufferedImage(dw, dh, image.getType()); var im = image.getScaledInstance( dw, dh, Image.SCALE_AREA_AVERAGING); thumb.getGraphics().drawImage(im, 0, 0, dw, dh, null); return thumb; }
上記を「auto-resize.js」という名前で保存します。そして、プログラムを実行するには、コマンドラインから以下のように入力します。
java -jar ./js.jar auto-resize.js