- Home ›
- Java2Dによる画像処理 ›
- BufferedImageの使い方色々 ›
- HERE
BufferedImageクラスとは
広告
BufferedImageクラスについて色々調べてみたいと思います。BufferedImageクラスは簡単に言えばメモリ上に領域を作って、そこに画像を読み込んだり、物体を描画したりといったことを行う為のものかと思います。その結果をファイルに書き出したり、実際に表示したりといったこともできます。
まずクラス図から見てみましょう。
- java.lang.Object
- java.awt.Image
- java.awt.image.BufferedImage
- public class BufferedImage extends Image implements WritableRenderedImage, Transparency
コンストラクタは下記の3つが用意されています。
コンストラクタ |
---|
BufferedImage(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, Hashtable<?,?> properties) ColorModel および Raster を指定して、新しい BufferedImage を構築します。 |
BufferedImage(int width, int height, int imageType) 定義済みイメージ型の中の 1 つで BufferedImage を構築します。 |
BufferedImage(int width, int height, int imageType, IndexColorModel cm) 定義済みイメージ型の TYPE_BYTE_BINARY または TYPE_BYTE_INDEXED のどちらかで BufferedImage を構築します。 |
この中で使い方が現在分かるのは2番目のものだけです。
BufferedImage public BufferedImage(int width, int height, int imageType)
定義済みイメージ型の中の 1 つで BufferedImage を構築します。イメージの ColorSpace は、デフォルトの sRGB 領域になります。 パラメータ: width - 作成されたイメージの幅 height - 作成されたイメージの高さ imageType - 作成されたイメージの形式
幅と高さ、そしてimageTypeを指定してBufferedImageを作成します。imageTypeは取りうる値が決まっていて、下記の中から1つ選択します。
値 | 説明 |
---|---|
static int TYPE_3BYTE_BGR | 青、緑、および赤が 3 バイトに格納された 8 ビット RGB 色成分 (Windows スタイルの BGR カラーモデルに対応) によるイメージを表します。 |
static int TYPE_4BYTE_ABGR | 青、緑、および赤が 3 バイトに格納され、1 バイトのアルファを持つ 8 ビット RGBA 色成分によるイメージを表します。 |
static int TYPE_4BYTE_ABGR_PRE | 青、緑、および赤が 3 バイトに格納され、1 バイトのアルファを持つ 8 ビット RGBA 色成分によるイメージを表します。 |
static int TYPE_BYTE_BINARY | 不透明な byte パックの 1、2、または 4 ビットイメージを表します。 |
static int TYPE_BYTE_GRAY | 符号なし byte グレースケールイメージ (インデックスなし) を表します。 |
static int TYPE_BYTE_INDEXED | インデックス付き byte イメージを表します。 |
static int TYPE_CUSTOM | イメージ型が認識されない ので、イメージは必ずカスタマイズされています。 |
static int TYPE_INT_ARGB | 整数型ピクセルにパックさ れた 8 ビット RGBA 色成分によるイメージを表します。 |
static int TYPE_INT_ARGB_PRE | 整数型ピクセルにパックさ れた 8 ビット RGBA 色成分によるイメージを表します。 |
static int TYPE_INT_BGR | 青、緑、および赤が整数型 ピクセルにパックされた 8 ビット RGB 色成分 (Windows スタイルまたは Solaris スタイルの BGR カラーモデルに対応) によるイメージを表します。 |
static int TYPE_INT_RGB | 整数型ピクセルにパックさ れた 8 ビット RGB 色成分によるイメージを表します。 |
static int TYPE_USHORT_555_RGB | アルファなしの 5-5-5 RGB 色成分 (5 ビットの赤、5 ビットの緑、5 ビットの青) によるイメージを表します。 |
static int TYPE_USHORT_565_RGB | アルファなしの 5-6-5 RGB 色成分 (5 ビットの赤、6 ビットの緑、5 ビットの青) によるイメージを表します。 |
static int TYPE_USHORT_GRAY | 符号なし short グレースケールイメージ (インデックスなし) を表します。 |
色々な種類がありますが、透明度などを考えないでいいならBufferedImage.TYPE_INT_BGRを指定しておけばいいかと思います。
使い方としては下記のようになります。
BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_INT_BGR);
( Written by Tatsuo Ikura )