8 位图像全屏显示黑色
8-bit image displaying black on whole screen
我有一个图像和一个填充了栅格数据的数组...但是图像只显示黑色,请帮忙....
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);
只需像这样更改您的IndexColorModel
....
IndexColorModel icm = new IndexColorModel(8,256,red,green,blue);
对于 1 位... 1,2
对于 2 位... 2,4
对于 4 位... 4,16
对于 8 位... 8,256
另外 IndexColorModel
不需要 16 位或更多位....
我有一个图像和一个填充了栅格数据的数组...但是图像只显示黑色,请帮忙....
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);
只需像这样更改您的IndexColorModel
....
IndexColorModel icm = new IndexColorModel(8,256,red,green,blue);
对于 1 位... 1,2 对于 2 位... 2,4 对于 4 位... 4,16 对于 8 位... 8,256
另外 IndexColorModel
不需要 16 位或更多位....