2007年8月17日金曜日

Mistralで画像処理

スズキです。

Java画像処理ネタです。

昔、ImageJとか使ってました。
http://rsb.info.nih.gov/ij/index.html
機能的には良かったのですが、どちらかというと、
UIを含むアプリケーションとして提供されているので、
ライブラリとして使うには、ちょっとなー、といった感じでした。

で今回はMistralというライブラリを試してみました。
http://mistral.tidalwave.it/
使ってみた感想ですが、よくできていると思います。

とりあえず、下記がチュートリアルとなります。
http://mistral.tidalwave.it/infoglueDeliverLive/ViewPage.action?siteNodeId=394&languageId=1&contentId=-1

画像のリサイズをこれでやると、下記のようなコードになります。
※EditableImage.jarのみでいけます。
--------
// イメージの読み込み
EditableImage image = EditableImage.create(
  new ReadOp(this.uploadedFile.getInputStream())
);
// 50%にリサイズ
image.execute(new ScaleOp(0.5));
// イメージの書き出し
image.execute(
  new WriteOp("jpg", application.getRealPath(IMAGE_PATH))
);
--------
※Teedaのファイルアップロードで使ったものを簡略化しています。
http://suz-lab.googlecode.com/svn/trunk/suz-example-teeda/src/main/java/jp/co/iret/suz/example/teeda/web/upload/UploadEntryPage.java

image.execute(new XxxOp(...));
で画像に関していろいろ処理できるようになっています。
(用意されているXxxOpは下記参照)
https://mistral.dev.java.net/nonav/javadoc/EditableImage/it/tidalwave/image/op/package-summary.html
https://mistral.dev.java.net/nonav/javadoc/Operations/it/tidalwave/image/op/package-summary.html

suz-example-teedaプロジェクトの
画像アップロードサンプルにも導入しています。
http://suz-lab.googlecode.com/svn/trunk/suz-example-teeda/

当面は、フィード系はRome、画像処理系はMistralでいこう。

--
blog: http://suz-lab.blogspot.com/

0 コメント: