R 或 G 或 B 的值存储在 int 中,范围为 0~255。我已经有了图片每个像素的所有 rgb 值,我想根据我已经知道的 r,g,b 显示图片。
BufferedImage imgnew = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
//I can get access to the rgb of every pixel by R[x][y],G[x][y],B[x][y]
//how to calculate the rgb of every pixel?
imgnew.setRGB(x, y, rgb);
}
}
JFrame frame = new JFrame();
JLabel labelnew = new JLabel(new ImageIcon(imgnew));
frame.getContentPane().add(labelnew, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
我的问题是如何计算每个像素的正确像素,因为 rgb 存储为 int,我应该将其转换为字节吗?如果是,怎么做,如果不是,还有其他方法可以计算pix吗?我知道有人用
int rgb = 0xff000000 | ((R[x][y] & 0xff) << 16) | (((G[x][y] & 0xff)<< 8) | ((B[x][y] & 0xff);//the way I calcualte the pix is wrong, which lead to the wrong color of pics
计算 rgb,但这里 R[x][y] G,B 存储在字节类型中