我试图以快速的方式获得图像matriz(像素配置)......在JAVA中
我可以获得matriz但是依赖于图片的分辨率,这需要花费很多时间,所以如果有人知道如何快速获得它,请告诉我。
int a;
int r ;
int g ;
int b ;
for(int y = 0; y < bufImage2.getHeight(); y++) {
for(int x = 0 ; x < bufImage2.getWidth(); x++){
color = new Color(bufImage2.getRGB(x, y));
a = color.getAlpha();
r = color.getRed();
g = color.getGreen();
b = color.getBlue();
System.out.print(r+"."+g+"."+b+":");
}
&#34; for&#34; for&#34;我用来获取RGB值。
如果有图书馆或其他什么要做,请更快告诉我。
感谢。
答案 0 :(得分:1)
基于类似的问题here,这里是我找到的,BufferedImage有自己的getRGB函数,它只需要处理以获取任何点的值(pixX,pixY)< / p>
int w = image.getWidth();
int h = image.getHeight();
int[] dataBuffInt = image.getRGB(0, 0, w, h, null, 0, w);
int pixX = 25;
int pixY = 50;
Color c = new Color(dataBuffInt[pixX+pixY*w]);
System.out.println(c.getRed()); // = (dataBuffInt[100] >> 16) & 0xFF
System.out.println(c.getGreen()); // = (dataBuffInt[100] >> 8) & 0xFF
System.out.println(c.getBlue()); // = (dataBuffInt[100] >> 0) & 0xFF
System.out.println(c.getAlpha()); // = (dataBuffInt[100] >> 24) & 0xFF