在整个屏幕上显示黑色的8位图像

时间:2015-04-17 05:44:08

标签: java swing bufferedimage

我有一个图像和一个带有填充光栅数据的数组......但是图像显示只是黑色,请帮助....

IndexColorModel icm = new IndexColorModel(1,2,red,green,blue);
    BufferedImage buf = new BufferedImage(width,height,BufferedImage.TYPE_BYTE_INDEXED,icm);            
    byte[] a = ((DataBufferByte) buf.getRaster().getDataBuffer()).getData();

//Logically filled up the whole image data here

//showing the image

     JFrame jf = new JFrame("1-Bit BMP");
     jf.setSize(width,height);
     //jf.setResizable(false);
     JLabel jl = new JLabel();
     JScrollPane js = new JScrollPane(jl);
     jl.setIcon(new ImageIcon(buf));
     jf.add(js);
     jf.setVisible(true);
     jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

1 个答案:

答案 0 :(得分:0)

只需像这样改变你的IndexColorModel ....

IndexColorModel icm = new IndexColorModel(8,256,red,green,blue);

表示1位... 1,2 对于2位...... 2,4 对于4位... 4,16 对于8位... 8,256

16位或更多位也不需要IndexColorModel ....