나는 한 번씩 이미지를 다시로드하는 응용 프로그램을 만들고 있습니다. 외부에서 바꿀 수 있도록 그 작업을했습니다. ImageIO.read (path)를 사용하여 이미지 파일을 읽습니다.자바 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();
}
}
사람은이 문제를 어떻게 해결 아는 사람?
감사합니다.
어떤 OS입니까? 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 (새 파일 (ref))', 고마워! –