Java でビットマップイメージを作成する

Mohd Mohtashim Nawaz 2023年10月12日
  1. Java のビットマップ画像
  2. Java で BufferedImage クラスを使用してビットマップイメージを作成する
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 でビットマップイメージを作成しました。画像をループすることで、各ピクセルに色を付けることができます。

また、コンソールに表示される出力は、画像のメタデータです。

画像を見たい場合は、pngjpg などの画像形式で画像を保存する必要があります。また、 setRGB() メソッドに RGB 値を渡すことで、画像に好きな色を設定することができます。

関連記事 - Java Image