在Android

时间:2017-03-29 07:41:48

标签: java android bufferedimage javax.imageio mobile-development

首先感谢你的时间。我有一个jar库,它将作为库包含在我的Android应用程序中。 除其他外,这个jar能够从jpg图像中获取RGB值。这在我的java应用程序中运行得很好但是当我在我的Android应用程序中运行它时它不起作用,因为类ImageIO.read(File file)(Bufferedimage)没有在Android中实现。 我读了一些关于使用Bitmap类的内容,但我没有发现任何相关内容。

你能帮我解决一下你在下面找到的方法吗?

public static int[][][] getImageRgb(BufferedImage image) { 
int width = image.getWidth(); 
int height = image.getHeight();
int[][][] rgb = new int[height][width][3]; 
for (int i = 0; i < height; i++) { 
for (int j = 0; j < width; j++) { 
int pixel = image.getRGB(j, i); 
rgb[i][j] = getPixelRgb(pixel); } 
} 
return rgb; 
}

getPixelRgb是一个函数的目标:

public static int[] getPixelRgb(int pixel) {
        // int alpha = (pixel >> 24) & 0xff;
        int red = (pixel >> 16) & 0xff;
        int green = (pixel >> 8) & 0xff;
        int blue = (pixel) & 0xff;
        return new int[]{red, green, blue};
}

我真的不知道如何为Android转换这种方法。

我期待着您的回复。 非常感谢。

1 个答案:

答案 0 :(得分:1)

您需要的是官方docs

  

int getPixel(int x,int y)

     

返回指定位置的颜色。

您可以从res / drawable文件夹中的资源创建位图,或者如果您要下载图像,则需要先将其保存到设备存储中。