ImageFilter


ImageFilter のクラスライブラリとそのソ−スファイルがあります。

説明 / ヒストリー / ダウンロード / 使い方 / ソースファイル / デモ / 戻る


使い方

どの ImageFilter もコンストラクタの引数を使って ImageFilter を制御します。 メソッドは使いません。
 
一般的な ImageFilter と使い方は同じです。 使いたい ImageFilter を filter、 変換元 Image を source、変換先 Image を destination、 コンポーネントを component としたとき、
destination=component.createImage(new FilteredImageSource(source.getSource(),filter));
として使います。
 
例えば、コンポーネントのサブクラス中で WaveImageFilter を波長 32、振幅 8、位相を 0.0 で使う時は
import net.antun.lib.awt.image.*;
 
destination=this.createImage(new FilteredImageSource(source.getSource(),new WaveImageFilter(32,8,0.0)));
とします。
 
各 ImageFilter の処理内容と コンストラクタの引数の指定方法について書きます。 パッケージ名は net.antun.lib.awt.image.*ImageFilter ですが、長いのでこの説明では lib.awt.image.*ImageFilter と表記しています。
 
lib.awt.image.NaltImageFilter(double amplitude)
まるでなるとのように画像を渦巻かせます。 amplitude でその程度を指定します。 amplitude=0.0 で原画像と同じになります。 ()
 
lib.awt.image.MingleImageFilter(Image image,double rate,int x,int y)
原画像の上に画像 image を半透明に重ねあわせます。 重ねあわせる場所を (x,y) で、 原画像と画像 image との混合比率を rate で指定します。 rate は 0.0〜1.0 の間で指定しますが、 0.0 ではもとの画像と同じになります。 画像 image は確定していないと使えないことと、 メモリ消費量が多いので注意してください。
 
lib.awt.image.AdditionImageFilter(Image image,int x,int y)
原画像の上に画像 image を加算重ねあわせします。 重ねあわせる場所を (x,y) で指定します。 光の画像を重ねるのに使ったりします。 画像 image は確定していないと使えないことと、 メモリ消費量が多いので注意してください。 ()
 
lib.awt.image.WaveImageFilter(int waveLength,int amplitude,double phase)
画像を波立たせます。 その波 (正弦波、sin 波) の 波長 を waveLength で、 振幅 を amplitude で、 位相角 を phase で指定します。 ()
 
lib.awt.image.SideWaveImageFilter(int waveLength,int amplitude,double phase)
画像を横方向に波立たせる WaveImageFilter の横波版です。 いわゆるラスタ変換です。 同じように波 (正弦波、sin 波) 波長 を waveLength で、 振幅 を amplitude で、 位相角 を phase で指定します。
 
lib.awt.image.TransformationImageFilter(int px0,int py0,int px1,int py1,int px2,int py2,int px3,int py3)
画像を 4 頂点を指定した四角形に変形します。 変換前の左上の頂点の変形後の座標を (px0,py0)、 右上の頂点の変形後の座標を (px1,py1)、 左下の頂点の変形後の座標を (px2,py2)、 右下の頂点の変形後の座標を (px3,py3) で指定します。 ()
 
lib.awt.image.MosaicImageFilter(int size)
モザイク化します。 モザイクの大きさを size で指定します。
 
lib.awt.image.RotateImageFilter(double angle)
画像を回転させます。 角度は angle にラジアンで指定します。 変換後の画像は変換前とは回転で飛び出した分 大きさが違う点に注意してください。 The Java Tutorial の RotateImageFilter を参考にして書きました。
 
lib.awt.image.ObscureImageFilter(int range)
ぼかします。 range を増やすことでぼかし具合を調節してください。
 
lib.awt.image.EmphasisImageFilter(double strength)
エッジを強調します。strength でその強さを指定します。
 
lib.awt.image.MirrorImageFilter()
左右反転します。
 
lib.awt.image.FlipImageFilter()
上下反転します。
 
lib.awt.image.MonochromeImageFilter()
モノクロにします。
 
lib.awt.image.AlphaImageFilter(int alpha)
画像全体のα値 (透明度) を alpha にします。 alpha は 0〜255 の間で指定してください。 例えば、alpha=128 とすると半透明になります。
 
lib.awt.image.AlphaImageFilter()
画像全体を透明化して透明画像を作る時に使います。 AlphaImageFilter(0) とした時と同じです。 元の画像の絵は無くなります。
 
lib.awt.image.ComplementaryImageFilter()
画像を補色化 (反転) します。 白<->黒に、青<->黄色に、赤<->水色に、緑<->紫になります。
 
lib.awt.image.BrightImageFilter(int delta)
原画像全体を delta だけ明るくします。 delta が負の値なら delta だけ暗くなります。
 
lib.awt.image.BrightImageFilter(int deltaR,int deltaG,int deltaB)
原画像全体を明るくします。 光の 3 原色の各成分ごとに明るさの増分を指定します。 負の値を指定すれば暗くも出来ます。 例えば、new BrightImageFilter(0,0,64) とすれば画像を青っぽくします。
 
lib.awt.image.GougeImageFilter(Color color)
指定色 color を透明化します。
 
lib.awt.image.LightImageFilter(int type,int brightness,int x,int y)
画像の座標 (x,y) に明るさ brightness の明かりを灯します。 光の種類を type に指定します。 光の種類は LightImageFilter.DEFAULT, LightImageFilter.CIRCLE,LightImageFilter.SPHERE があります。 あまりきれいではないので自分で光の画像を用意して AdditionImageFilter を使うことをお勧めします。
 
lib.awt.image.IdentityImageFilter()
恒等変換、つまり何もしない ImageFilter です。 new ImageFilter() と new IdentityImageFilter() は同じなので この ImageFilter はほとんど意味ないです。 あまり使いませんね。
 
lib.awt.image.SinglepassImageFilter
この ImageFilter は EmphasisImageFilter,WaveImageFilter, SideWaveImageFilter,RotateImageFilter,ObscureImageFilter, NaltImageFilter,MosaicImageFilter のスーパークラスです。 単独では使用しません。

戻る