64x128 픽셀의 이미지를 4x8 및 8x16 격자로 잘라내어 Temp 폴더에 저장하여 이미지 분류에서 피쳐를 추출합니다. 메신저가 여러 이미지에 대한 반복 작업을하는 동안 (첫 번째 이미지 자르기, 8x16 하위 이미지 가져 오기, 각 하위 이미지에 대한 기능 추출, 다음 이미지로 이동 및 기존 하위 이미지 덮어 쓰기) 임의의 격자에서 "파일을 찾을 수 없음"예외가 발생합니다. 상기 그리드 셀에 대한 액세스가 거부 되었기 때문이다. 이는 많은 수의 이미지 (20 개 이상)로 작업 할 때만 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?java.io.FileNotFoundException : Image.IO.write에서 액세스가 거부되었습니다.
잘라 내기 부분에 대한 내 코드 :
package imageProcess;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Crop_Raster {
BufferedImage src;
BufferedImage dst;
public Crop_Raster(BufferedImage src) {
super();
this.src = src;
}
public void cropImage_4x8() throws IOException{
int filenumber = 1;
for (int y = 0;y<4;y++){
for (int x = 0; x<8;x++){
File output = new File("Temp/"+filenumber+".jpg");
dst = src.getSubimage(16*x,16*y, 16, 16);
ImageIO.write(dst, "jpg", output);
filenumber ++;
}
}
}
public void cropImage_8x16() throws IOException{
int filenumber = 1;
for (int y = 0;y<8;y++){
for (int x = 0; x<16;x++){
File output = new File("Temp/"+filenumber+".jpg");
dst = src.getSubimage(8*x,8*y, 8, 8);
ImageIO.write(dst, "jpg", output);
filenumber ++;
}
}
}
내 6 교육 이미지의 두 번째 서브 이미지 처리하는 동안 발생하는 다음과 같은 예외를 얻을 :
java.io.FileNotFoundException: Temp\2.jpg (Zugriff verweigert)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at javax.imageio.stream.FileImageOutputStream.<init>(Unknown Source)
at com.sun.imageio.spi.FileImageOutputStreamSpi.createOutputStreamInstance(Unknown Source)
at javax.imageio.ImageIO.createImageOutputStream(Unknown Source)
at javax.imageio.ImageIO.write(Unknown Source)
at imageProcess.Crop_Raster.cropImage_8x16(Crop_Raster.java:38)
at svm.CreateVektor.createVector_8x16(CreateVektor.java:94)
at Main_Test.main(Main_Test.java:107)
오류가 자르기 부분에서 발생합니다 나머지 메서드는 제대로 작동합니다.