我要获得一个图片的rgb值然后存入数组里,我的做法是获得图片的长宽后,用嵌套for循环一行一行的把值存入数组(这个都理解的吧,就不贴码浪费感情了),但是这样太慢,求帮忙给写个快速的算法把图片每一个rgb值存入数组里,谢谢了。

解决方案 »

  1.   

    或者放在链表中。或者Map中。
      

  2.   

    楼主用到了哪些Java类啊?
    读取的图片,是JPEG的,还是 BMP的,还是其他格式的?
      

  3.   

    BufferedImage image=ImageIO.read((new FileInputStream("c:\\1.bmp")));
    int w=image.getWidth();
    int h=image.getHeight();
    System.out.println("w="+w+";h="+h);
    int[] rgbArray = new int[w*h];
    image.getRGB(0, 0, w, h, rgbArray, 0, w);
    int n=0;
    for(int i:rgbArray){
    System.out.print(i);
    if((n+1)%w==0){
    System.out.println();
    }
    n++;
    }
      

  4.   

    放链表或者map不是还要慢么?
    我觉得list比较快,至少是个顺序结构
      

  5.   

    我觉得楼主是要把图片上每个rgb的数值存入对应的图片数组里面,
    这样的话,总归是要做 height*weidth次操作,没法更快了吧?
      

  6.   

    说错了,我觉得直接用int数组比较快