0
파일을 변경 한 후에 파일을 바꾸려고합니다. 문제는 원래 파일을 바꾸지 않고 새 파일을 만들 수 있다는 것입니다. 다음은 내가 사용하고있는 코드입니다.FileImageOutputStream을 사용하여 기존 파일 바꾸기
private static void resize(String folder, String filename)
throws IOException {
BufferedImage imagem = ImageIO.read(new File(folder + "/" + filename));
float quality = (float) 0.25;
ImageWriter writer = (ImageWriter) ImageIO.getImageWritersByFormatName(
"jpeg").next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(quality);
File file = new File(folder + "/" + filename);
FileImageOutputStream output = new FileImageOutputStream(file);
writer.setOutput(output);
IIOImage image = new IIOImage(imagem, null, null);
writer.write(null, image, iwp);
writer.dispose();
}
현재 Windows에서이 파일을 사용하고 있는데 사용 권한이 작동하지 않는 것 같습니다. S – user2430343
@ user2430343 다른 파일에 출력을 저장하려고 다시 시도했습니다. 대체 된 크기와 다른 크기입니다. 나는 606KB의 이미지로 노력했다. 교체 할 때 여전히 606KB이지만 열면 품질이 떨어집니다. 출력을 다른 파일에 저장하면 39KB이고 606KB로 된 것보다 압축률이 높습니다. 606KB – Evans
그냥 607KB 였지만 제대로 작동했지만 대체하지 않으면 28kb의 결과가 나타납니다. 그 일이 어떻게 일어 났는지 설명해 주시겠습니까? Thx in advance – user2430343