这个MemoryImageSource不行啊:)

解决方案 »

  1.   

    我说的写象素的意思是这样的:就是先在内存中处理象素,然后一个一个象素的写到屏幕上显示出来!我所知道就是JAVA里的专用函数只能显示有格式的图象,我的图象格式是原始图象,格式如下:大小:256X256,灰度图象,每个象素用一个字节表示,而且,象素的值都是正数!如果用byte数组,那么大于128的值就要丢失!!如果用int型的,那么又怎么把硬盘中的数据读入内存呢?!请高手指教一二!!
      

  2.   

    这样试试:int[] buffer = new int[256*256] ;
    /*接下去将数据读入buffer*/
    MemoryImageSource mis = new MemoryImageSource(256,256,buffer,0,256);
    Image image = Toolkit.getDefaultToolkit().createImage( mis ) ;再利用Graphics的drawImage应该就可以画出来了,不需要一个像素一个像素的写
      

  3.   

    呵呵,这种写象素的方法真原始,
    不过虽然没有setpixel,却幸好有
    drawline,一样的
      

  4.   

    我文件里的数据是图象的灰度,怎么用drawLine()?!谢谢指教啊!!
      

  5.   

    回drinkant(喝酒的蚂蚁)大虾: 你所言
    int[] buffer = new int[256*256] ;
    MemoryImageSource mis = new MemoryImageSource(256,256,buffer,0,256);
    Image image = Toolkit.getDefaultToolkit().createImage( mis ) ;
    然后用g.drawImage(image,0,0,null)就行了吗?可是,却显示不出来!怎么回事情啊?!我的代码如下:
    super.paintComponent(g);
      RawPFrame frame=new RawPFrame();
      for(int i=0;i<256*256;i++)
      buffer[i]=frame.rawBuffer1D[i];
      MemoryImageSource mis = new MemoryImageSource(256,256,buffer,0,256);
     Image image1 = Toolkit.getDefaultToolkit().createImage( mis ) ;
     g.drawImage(image1,0,0,this);