인터넷에서 몇 가지 솔루션을 찾고 있었지만 아직 내 문제에 대한 답변을 찾지 못했습니다.ImageIO 원래 크기로 저장
나는 내 PC에서 이미지 파일을 가져 오는 프로그램을 만들거나 작업했는데 Java Graphics
을 사용하여 일부 텍스트/오브젝트/등을 추가하여 편집합니다. 그런 다음 Java ImageIO
은 새로 수정 된 이미지를 저장합니다.
지금까지 나는 훌륭하게 할 수 있었지만 이미지 크기에 문제가있었습니다. 원본 이미지와 수정 된 이미지의 크기가 같지 않았습니다.
원본은 2x3
인치 이미지이며 2x3 인치라고 가정 된 수정 된 이미지는 슬프게도 8x14
인치입니다. 그래서 원래의 것보다 더 크게되었습니다.
여전히 '좋은 품질'을 갖춘 2x3 인치 이미지의 출력을 제공하는 솔루션/코드는 무엇입니까?
UPDATE :
그래서, 여기에 내가 사용하는 코드입니다.
public Picture(String filename) {
try {
File file = new File("originalpic.jpg");
image = ImageIO.read(file);
width = image.getWidth();
}
catch (IOException e) {
throw new RuntimeException("Could not open file: " + filename);
}
}
private void write(int id) {
try {
ImageIO.write(image, "jpg", new File("newpic.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
2 UPDATE :
는 지금 새로운 이미지의 문제가 무엇을 알고있다. Photoshop에서 확인해 보면 원래 이미지와 다른 이미지 해상도를 가지고 있습니다. 원본 이미지는 300 픽셀/인치이고 새 이미지는 72 픽셀/인치 해상도입니다.
Java를 사용하여 해상도를 어떻게 변경할 수 있습니까?
질문은 일반적인 것이지만, 다른 DPI 설정이있는 형식으로 저장하는 것이 좋습니다. 몇 가지 코드를 게시하면 도움을 얻을 수 있습니다. –
문제의 [SSCCE] (http://sscce.org/)를 게시하십시오. – mattbdean
이상합니다. Graphics2D의 모든 변환은 역변환과 함께 반영되어야합니다. _ 모르겠지만 그게 유일한 설명 인 것 같습니다 ._ 클리핑이 필요합니까? –