我正在研究每隔一段時間重新載入圖像的應用程序。 我做到了,所以我可以在外面進行更改。我正在使用ImageIO.read(路徑)來讀取圖像文件。Java ImageIO聲明圖像
現在,當我想用我的paint.NET更改圖像並嘗試保存(覆蓋)圖像時,paint.NET會引發IOException。這可能是因爲ImageIO在流程運行時聲稱圖像是他的。但這就是我的想法。
的代碼是在這裏:
public int width, height;
public int[] pixels;
public Sprite(String ref) {
try {
BufferedImage image = ImageIO.read(new FileInputStream(ref));
width = image.getWidth();
height = image.getHeight();
pixels = new int[width * height];
pixels = image.getRGB(0, 0, width, height, pixels, 0, width);
} catch (IOException e) {
e.printStackTrace();
}
}
任何人知道如何解決這一問題?
謝謝!
哪個操作系統? http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7166379它似乎相當竊聽,http://stackoverflow.com/questions/19234572/memory-leak-in-java-imageio-read –
這些錯誤僅針對OS X和Linux的Java 7,似乎可能與此無關。我認爲這個問題的解決方案實際上是微不足道的,請參閱下面的答案。 – haraldK
'ImageIO.read(new File(ref))'工作,謝謝! –