忍者ブログ
[116] [115] [114] [113] [112] [111] [110] [109] [108] [107] [106]

DATE : 2017/09/20 (Wed)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


DATE : 2006/07/21 (Fri)

JAI で基本となるクラスは、次の2つです。

ParameterBlock

処理を行う際のパラメータを設定するためのクラスです。

例えば、画像の周辺部を切り落とす Crop 操作は以下のパラメータを指定できます。(詳しくは、javax.media.jai.operator.CropDescriptorをご覧ください)

パラメータ名 説明
x java.lang.Float 切り取る領域の原点の x 座標値
y java.lang.Float 切り取る領域の原点の y 座標値
width java.lang.Float 切り取る領域の幅
height java.lang.Float 切り取る領域の高さ

なお、原点とは、領域の左上隅の座標のことを言います。

ここで、100×100の画像(java.awt.image.BufferedImage)の外周10 px を切り落とすとすると、パラメータは次のようになります。

パラメータ名
x 10
y 10
width 80 px
height 80 px

このパラメータを構築するコードは、次のようになります。

ここでのポイントは、以下の通りです。

  • addSource メソッドで操作対象の画像を指定する。
  • add メソッドでパラメータを順番に指定する。
  • パラメータの型に気をつける。
ParameterBlock parameter = new ParameterBlock();

// 操作対象画像の設定
parameter.addSource(image);
// パラメータの設定
parameter.add((float) 10);
parameter.add((float) 10);
parameter.add((float) 80);
parameter.add((float) 80);

ここで、操作対象の画像を表すオブジェクトは image 変数に格納されているものとします。

なお、addSource メソッドで指定できる画像は、java.awt.image.RenderedImagejava.awt.image.renderble.RenerableImage のどちらかです。今回は RenderedImage の方を指定しました。両者の違いは、今回は省略します。

なお、パラメータの型が異なると、操作の実行時に例外が発生します。

ちなみに、JAI には javax.media.jai.ParameterBlockJAI というクラスがあります。こちらを使うと、パラメータ名を指定して値を設定できます。

JAI

上で設定したパラメータで Crop 操作を行うコードは次の通りです。

RenderedOp result;

result = JAI.create("Crop", parameter);

ここで、create メソッドの第1引数で指定している文字列は、実行したい操作の名前です。具体的には、実行したい操作の「GrobalName」を指定します。例えば、Crop 操作の場合は、javax.media.jai.operator.CropDescriptor に「GrobalName」が「Crop」と設定されています。ちなみに、大文字小文字の区別はありません。「crop」と操作を指定しても、動作します。

なお、操作の結果返ってくるオブジェクトは、RenderedImage インタフェースを実装しています。そのため、続けて他の操作を行う場合は、返ってきたオブジェクトを次の操作の対象としてそのまま使うことができます。

PR
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)
ブログ内検索
最近の状況
リンク
カレンダー
08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)