Java でビットマップイメージを作成する
ビットマップは、画像を生成するために特定の方法で編成されたビットの配列として画像を格納する画像ファイル形式です。
この記事では、Java でビットマップイメージを作成する方法について説明します。
Java のビットマップ画像
Java には、ビットマップイメージを表す特定のビットマップクラスはありません。
代わりに、BufferedImage
クラスがあります。このクラスは Image
クラスのサブクラスであり、カラーモデルと画像データのラスターが含まれています。
BufferedImage
クラスを使用して、画像データをピクセルとして保存できます。クラスの get
メソッドと set
メソッドを呼び出して、ピクセル値を操作し、目的の画像を取得できます。
Java でのビットマップ画像の種類
Java ビットマップイメージまたは JavaBufferedImage
にはいくつかの異なるタイプがあります。コンストラクター自体で、画像のタイプを表すフラグ変数を設定できます。
配色は種類が異なり、グレースケール画像も作成できます。BufferedImage
クラスのフラグとメソッドの詳細については、こちらにアクセスしてください。
Java で BufferedImage
クラスを使用してビットマップイメージを作成する
BufferedImage
クラスと setRGB()
メソッドを使用して、Java でビットマップイメージを作成できます。
これは、データバッファと、画像データを操作するために使用できるさまざまなメソッドを提供します。BufferedImage
を作成するには、BufferedImage()
コンストラクターを使用できます。
BufferedImage()
コンストラクターは、最初の入力引数として画像の幅、2 番目の入力引数として画像の高さ、3 番目の入力引数として画像の種類を表す整数定数を取ります。
setRGB()
メソッドは、BufferedImage
で呼び出されると、BufferedImage
のピクセルに特定の RGB 値を設定します。
setRGB()
メソッドは、操作されるピクセルの x 座標を最初の入力引数として、ピクセルの y 座標を 2 番目の入力引数として、整数 RGB 値を 3 番目の入力引数として使用します。以下の例では、3 番目の入力引数として赤の RGB 値を使用しました。
サイズ 10x10 のビットマップ画像を生成し、それを赤で着色するコードを見てみましょう。
import java.awt.Color;
import java.awt.image.BufferedImage;
public class ImageExample {
public static void main(String[] args) {
BufferedImage img = new BufferedImage(10, 10, BufferedImage.TYPE_4BYTE_ABGR);
img.setRGB(1, 1, Color.RED.getRGB());
System.out.println(img);
}
}
出力:
BufferedImage@50040f0c: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space = java.awt.color.ICC_ColorSpace@7a4f0f29 transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width = 10 height = 10 #numDataElements 4 dataOff[0] = 3
上記の例では、img
変数に格納された Java でビットマップイメージを作成しました。画像をループすることで、各ピクセルに色を付けることができます。
また、コンソールに表示される出力は、画像のメタデータです。
画像を見たい場合は、png
、jpg
などの画像形式で画像を保存する必要があります。また、 setRGB()
メソッドに RGB 値を渡すことで、画像に好きな色を設定することができます。