我需要將BufferedImage保存爲png圖像。下一步,我需要在另一個程序(Avisynth)中打開圖像。這個程序能夠打開我在ms-paint中繪製的圖像,但是我的java程序創建的圖像無法打開。來自我的程序和ms-paint的圖像是png類型的,而在windows中看起來不錯。這意味着我可以打開它,而圖像包含了我繪製的所有內容。 在外部程序,它拋出以下錯誤:JAVA:如何從BufferedImage創建「PNG」圖像。圖像必須可以在DevIL庫中打開
Avisynth open failure:
ImageReader error 'Could not open file' in DevIL library.
reading image"C:\Images\mask\mirror.png"
DevIL version 166.
(C:\User\admin\Documents\4555.avs)
這裏是代碼。我甚至用評論線嘗試過。我在google上發現了一些東西。該消息對於不好的圖像格式是典型的。但我不知道如何做像ms-paint一樣的圖像。
BufferedImage img = new BufferedImage(video.getWidth(), video.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = (Graphics2D) img.getGraphics();
img.getGraphics().setColor(Color.white);
c.paintAll(img.getGraphics());
File f = new File(path + ".png");
opencv_core.IplImage imgs = IplImage.createFrom(img);
opencv_highgui.cvSaveImage(f.getPath(), imgs);
//ImageIO.write(img, "png", f);
在代碼:
c is JComponent, whitch contains the image, whitch I want to save, and I used JavaCL library
你可以附上不好的圖像嗎?你用'ImageIO.write'(註釋掉的代碼)得到同樣的問題嗎? – haraldK
是的,我使用ImageIO.write時遇到了同樣的問題。 –
這裏是鏈接文件:http://rabcan.wz.cz/temp。rar –