0

コード:

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 ビットを取得する方法がわかりません。助けて

4

0 に答える 0