コード:
private BufferedImage performBinary(BufferedImage original) {
int step = 127;
int min = 0;
int max = 1;
Raster originalRaster = original.getData();
BufferedImage result = new BufferedImage(image.getWidth(), image.getHeight(),
BufferedImage.TYPE_BYTE_BINARY);
WritableRaster resultRaster = result.getRaster();
for (int x = 0; x < originalRaster.getWidth(); x++) {
for (int y = 0; y < originalRaster.getHeight(); y++) {
int pix = originalRaster.getPixel(x, y, (int[]) null)[0];
if (pix < step) {
resultRaster.setPixel(x, y, new int[] { min });
} else {
resultRaster.setPixel(x, y, new int[] { max });
}
}
}
return result;
}
...
ImageIO.write(result, "jpg", new File(pathToFile));
...
問題: この結果を画像ファイルに保存します。画像は思い通りに白黒ですが、深度は 24 ビットです。白黒の 1 ビット深度が必要です。BufferedImage、ColorModel、および ColorSpace に関する Javadoc を読みましたが、出力で 1 ビットを取得する方法がわかりません。助けて