今回取り上げるのはイメージです。

 イメージについては、すでに本連載の第4回で紹介しましたが、その時は表示する機能だけの紹介でした。今月は、イメージのピクセルを操作する機能について紹介していきます。

 具体的にはイメージのピクセルの値を読み込むことと、イメージに対してピクセルを書き込む機能です。

ピクセルの読み込みと書き込み

 ピクセル値の読み込みはjavafx.scene.image.PixelReaderインタフェースを使用します。PixelReaderオブジェクトはjavafx.scene.image.Imageオブジェクトから取得できます。

 たとえば、イメージの(0, 0)の位置のピクセル値を読み込むには次のように記述します。

リスト1●ピクセルの読み込み
        Image image = ...;
 
        // ピクセルの読み込みを行うPixelReaderを取得
        PixelReader reader = image.getPixelReader();
        
        // (0,0)のピクセル値を読み込む
        Color color = reader.getColor(0, 0);

 PixelReaderオブジェクトはImageクラスのgetPixelReaderメソッドで取得します(赤字部分)。ピクセル値を読み込むにはgetColorメソッドを使用します。引数はピクセルを読み込むイメージの座標です。

 getColorメソッドは戻り値としてColorオブジェクトを返します。

 getColorメソッド以外に、getArgbメソッドもあります。こちらはintにピクセルの色情報を格納します。

 ピクセルの書き込みを行うには、Imageクラスのサブクラスであるjavafx.scene.image.WritableImageクラスを使用します。ピクセル値を書き込むにはjavafx.scene.image.PixelWriterインタフェースを使用します。

 たとえば、イメージの(0, 0)の位置にColor.REDを書き込むには、次のように記述します。