我的图像有红色,绿色,蓝色和黄色四个方块。我需要得到每个方块的rgb值。我能够获得整个图像的rgb,但我想要它用于特定的部分。
答案 0 :(得分:2)
我不知道我是否完全理解你,但它来了。
您需要创建BufferedImage对象以获取RGB值:
File f = new File(yourFilePath);
BufferedImage img = ImageIO.read(f);
您可以从图像中获取RGB颜色值。你有4个方格;要检查其RGB值,您可以检查角点像素的RGB值:
Color leftTop = new Color(img.getRGB(0, 0));
Color rightTop = new Color(img.getRGB(img.getWidth - 1, 0));
Color leftBottom = new Color(img.getRGB(0, img.getHeight - 1));
Color rightBottom = new Color(img.getRGB(img.getWidth - 1, img.getHeight - 1));
之后,很容易分别获得红色,绿色和蓝色值:
int red = leftTop.getRed();
int green = leftTop.getGreen();
int blue = leftTop.getBlue();
修改强> 我真的很抱歉,我没有看到它适用于Android。如你所说,Android没有ImageIO类。要在Android中完成任务,请先初始化图像:
Bitmap img = BitmapFactory.decodeFile(yourFilePath);
从那时起,操作几乎相同:
int leftTop = img.getPixel(0, 0);
...
int red = Color.red(pixel);
int blue = Color.blue(pixel);
int green = Color.green(pixel);
答案 1 :(得分:1)
答案 2 :(得分:0)
我这样做了
int topLeftIndex = squareImage.getPixel(0, 0);
int R1 = (topLeftIndex >> 16) & 0xff;
int G1 = (topLeftIndex >> 8) & 0xff;
int B1 = topLeftIndex & 0xff;
与
相同int bottomLeftIndex=squareImage.getPixel(0, picHeight - 1);
int topRightIndex=squareImage.getPixel(picWidth -1 , 0);
int bottomRightIndex=squareImage.getPixel(picWidth -1, picHieght - 1);