이 코드가 원본 JPEG의 해상도를 변경하는 이유는 무엇입니까? JPEG 품질 설정이 다를 수 있기 때문에 파일 크기가 다른지 이해할 수 있지만 이미지의 크기를 조정하는 이유를 알 수 없습니다.이미지 해상도 변경 중 이미지 만 회전하려고합니다.
File newfile=new File(mydestinationfolder.concat(imagename));
Files.move(file.toPath(),newfile.toPath(), REPLACE_EXISTING);
Rotation Orientation;
if ((Orientation=Exif_data.get_Exif_Orientation(newfile)) != null) {
System.out.println(Orientation.toString());
BufferedImage oldimage = ImageIO.read(newfile);
BufferedImage tmp = Scalr.rotate(oldimage, Orientation);
oldimage.flush();
oldimage=tmp;
ImageIO.write(oldimage, "JPEG", newfile);
}
이미지 크기가 변경되어 이미지가 회전 할 때 전체 그림이 계속 표시 될 수 있습니다. 즉, 이미지의 내용을 렌더링 할 수 있도록 너비와 높이를 45도 변경해야합니다. – MadProgrammer
if 그것은 유용합니다 .. http : //stackoverflow.com/questions/4918482/rotating-bufferedimage-instances –
@MadProgrammer 나는 Exif 오리엔테이션이 90deg의 배수가 될 수 있다고 생각합니다. 따라서 크기는 대칭 이동해야합니다. – haraldK