錯誤試圖寫入到bmp黑白文件在UNIX的java無法寫入BMP圖像在UNIX
我使用Java創建並保存一個單色位圖在UNIX,但是當我試圖挽救它使用:
ImageIO.write(image, "Microsoft Windows BMP", new File(resImagePath))
保存了全黑色的文件,並拋出IOException:
http://i57.tinypic.com/2re6pv5.png
優化版本的Java 1.4.2
支持的格式如圖
文件已創建了圖片,但全黑或全白
全碼:
final BufferedImage image = new BufferedImage(1016, 648, BufferedImage.TYPE_BYTE_BINARY);
Graphics2D g = image.createGraphics();
g.setColor(Color.white);
g.fillRect(0,324,1016,648);
g.setColor(Color.black);
g.drawString("Text Here", 100, 100);
gnu.javax.imageio.bmp.BMPImageWriterSpi bmp_writer = new gnu.javax.imageio.bmp.BMPImageWriterSpi();
bmp_writer.getWriterInstance();
registry.registerServiceProvider(bmp_writer);
if (ImageIO.write(image, "Microsoft Windows BMP", new File(resImagePath)))
System.out.println("ok");
else {
String names[] = ImageIO.getWriterFormatNames();
for (int i = 0; i < names.length; i++)
System.out.println("writer " + names[i]);
}
確保在寫入圖像之前處理Graphics上下文。應該沒有必要像這樣實例化一個編寫器,因爲實現可能在平臺之間改變,你應該問ImageIO註冊的實現 – MadProgrammer
我測試了你的代碼,並且在糾正了那些不能編譯和確保的部分之後整個圖像被填充,而不僅僅是它的一部分,它對我很好 – MadProgrammer