PNG画像のいくつかの特性に基づいてPNG画像を調整するのに役立つJavaコードを実装しようとしています:例えば、色許容解釈タイプビット深度
0 1,2,4,8,16 各ピクセルはグレースケール サンプルです。
そこから、色の種類が 0 の場合、グレースケールの 1、2、4、8、16 の異なるビット深度に基づいてコードを実装する必要があることを検索しました。
Graphic2D ライブラリを使用したいので、次のように考えます。
if (img_bitDepth == 16) {
type = BufferedImage.TYPE_USHORT_GRAY; // 11
} else if (img_bitDepth == 8) {
type = BufferedImage.TYPE_BYTE_GRAY; //10
} else if (img_bitDepth == 4) {
type = BufferedImage.TYPE_BYTE_BINARY;
} else if (img_bitDepth == 2) {
type = BufferedImage.TYPE_BYTE_BINARY;
} else if (img_bitDepth == 1) {
type = BufferedImage.TYPE_BYTE_BINARY;
} else {
//logger warning.
}
BufferedImage resizedImage = new BufferedImage (img_width, img_height, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, img_width, img_height, null);
g.dispose();
しかし、画像タイプ「TYPE_BYTE_BINARY」で2と4のビット深度を設定する方法がわかりません。
なにか提案を?