我有char[] rbg
包含:
rgb[0]
:红色值rgb[1]
:绿色值rgb[2]
:蓝色值我想使用方法BufferedImage::setRGB(x, y, int rgb)
如何继续将char数组转换为int值?
注意:我使用Java
编辑:我正在寻找最快的解决方案
由于
答案 0 :(得分:7)
int value = ((255 & 0xFF) << 24) | //alpha
(((int)rgb[0] & 0xFF) << 16) | //red
(((int)rgb[1] & 0xFF) << 8) | //green
(((int)rgb[2] & 0xFF) << 0); //blue
答案 1 :(得分:3)
import java.awt.Color;
Color color = new Color(rgb[0],rgb[1],rgb[2]);
int rgb = color.getRGB();
参考:http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Color.html#getRGB%28%29
答案 2 :(得分:0)
int rgb2 = rgb[0] << 16 | rgb[1] << 8 | rgb[2];
也许你必须扭转指数的顺序。
答案 3 :(得分:-1)
BufferedImage buffImg = new BufferedImage(176, 144, BufferedImage.TYPE_INT_RGB);
/*Setting RGB values to BufferedImage*/
int[] raw = new int[rgbCameraData.length * 4 / 3];
for (int i = 0; i < rgbCameraData.length / 3; i++) {
raw[i] = 0xFF000000
| ((rgbCameraData[3 * i + 0] & 0xFF) << 16)
| ((rgbCameraData[3 * i + 1] & 0xFF) << 8)
| ((rgbCameraData[3 * i + 2] & 0xFF));
}
buffImg.setRGB(0, 0, 176, 144, raw, 0, 176);
System.out.println("BufferedImage :" + img);