现在有一张BMP的图片,怎么提取它的每点的像素的RGB颜色啊?还有, 现在已经有一个RGB颜色的二维矩阵,怎么绘出图片,并作为图片文件输出呢?在线等解答。谢谢了先!

解决方案 »

  1.   

    BufferedImage bi = ImageIO.read( new File( youImageFile ) );
    int RGBcolor = bi.getRGB( x, y );
      

  2.   

    img = getImage(getDocumentBase(), "lena.bmp");
        pixels = new int[128 * 128];
        try {
          PixelGrabber pg = new PixelGrabber(img, 0, 0, 128, 128, pixels, 0, 128); ///////
          pg.grabPixels();
        }
      

  3.   

    有这两种方法,第二种我试过,第一种没试过
    第二种像素值存于pixels中,每一个值都是一个int型,含32bit第一个字节是关于亮度的,第二字节是r的值
    第三 字节是g的值,第四字节是b的值
      

  4.   

    可是我试验的时候,怎么输出的每个pixels[i]的值都是0 啊,好像没有被初始化的似的
    望大哥帮忙。
      

  5.   

    Image img = Toolkit.getDefaultToolkit().getImage("6.BMP");
      int pixels[] = new int[wideth * height];
      int test[]=new int[wideth * height];
    try {
        PixelGrabber pg = new PixelGrabber(img, 0, 0,wideth,height, pixels, 0, wideth); 
        pg.grabPixels();
       }
        
      catch(Exception e){}
    这样对么?然后我这样测试:   for(int i=0;i<wideth;i++){
          for(int j=0;j<height;j++){
       System.out.println(pixels[i*wideth+j]);
        
             }
              }
    却发现pixels中的每个数都是0;
    请问是怎么回事啊??这