我想将 RGB 颜色从 8 位量化到 6 位。我编写的java代码如下:
int ind = 0;
for(int y = 0; y < height; y++){
for(int x = 0; x < width; x++){
byte a = 0;
byte r = bytes[ind];
byte g = bytes[ind+height*width];
byte b = bytes[ind+height*width*2];
int pix = 0xff000000 | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
img.setRGB(x,y,pix);
ind++;
}
}
然后,我改变了:
int pix = 0xff000000 | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
至:
int pix = 0xff000000 | ((r & 0xff) << 12) | ((g & 0xff) << 6) | (b & 0xff);
因为我认为这意味着每个通道每像素6位,我不知道我的理解是对还是错,输出图像真的很奇怪。我希望有人能帮我弄清楚