FC2ブログ

Java(Rhino)でサムネイルを作成する

写真ページを作るのにiPhoto->iWebという流れはまぁいいんだけど
.Macを使用していない人間にとってみると
iWebでサイト全体を作る気は毛頭ないので
ちょっとiWebのフォルダ書き出し機能はしんどいわけです。
(過去に作ったページまで書き出そうとするから)

というわけでJavaで自分好みのPhoto管理ソフトを作ろう
(とか言いながらRhinoで作ってる)

まずはサムネイルを指定したサイズでまとめて作りたい関数。


importPackage(Packages.java.awt)
importPackage(Packages.java.awt.image)
importPackage(Packages.java.io)
importPackage(Packages.javax.imageio)

var createThumb=function(srcfile,dstfile,maxSize){
// srcfileの読み込み
var fis=new FileInputStream(srcfile)
var image=ImageIO.read(fis)
fis.close()

// 縮小率を計算する
var h=image.getHeight()
var w=image.getWidth()
var s= h>w? h:w
var scale=1.0*maxSize/s

w=parseInt(w*scale)
h=parseInt(h*scale)

// dstfileの書き込み準備
var shrink=new BufferedImage(w,h,image.getType())
var g=shrink.createGraphics()
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BICUBIC)
g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY)
g.setRenderingHint(RenderingHints.KEY_DITHERING,RenderingHints.VALUE_DITHER_ENABLE)

// 書き込み
g.drawImage(image,0,0,w,h,null)
ImageIO.write(shrink,'jpg',new File(dstfile))
}
関連記事

コメントの投稿

非公開コメント

a8
最近の記事
月別アーカイブ
ブログ内検索
グリムス
フリーエリア
リンク
RSSフィード