2017-03-13 3 views
1

는 마이크로 소프트 샘플 사진과 함께 오류를주고 샘플 코드 (tulips.jpg) 이미지아파치 평민 영상 기록 이미지 오류 아래

bufferedImage = Imaging.getBufferedImage(new file("Tulips.jpg")); 

File imageFile = new File("outputfile.jpg"); 
final Map<String, Object> optionalParams = new HashMap<String, Object>(); 
Imaging.writeImage(bufferedImage, imageFile, ImageFormats.JPEG, optionalParams); 

이 코드는 "이 이미지 포맷 (JPEG-사용자 정의)을주고있다 할 수없는 쓰여져. " 어떤 포인터가 큰 도움이 될 것입니다. 나는 stackoverflow, 구글 검색 - 지금까지 도움이되었습니다.

설명서를 읽었을 때 bufferedImage.getType() == TYPE_UNKNOWN 인 경우이 메시지가 표시되지만 알 수없는 이유는 무엇인지 알 수 없습니다.

도움을 주셔서 대단히 감사드립니다.

답변

1

Apache Commons Imaging은 JPEG 파일에 쓰기 기능을 지원하지 않습니다. 지원되는 형식 정보는 여기 http://commons.apache.org/proper/commons-imaging/formatsupport.html (심지어 JPEG 읽기는 완전히 지원되지 않음)을 볼 수 있습니다. 그러나 다른 형식으로 쓰기가 지원됩니다 (예 : writeImage 함수 호출에서 PNG로 이미지 형식을 변경할 수 있습니다).

또한 Apache Commons Imaging은 아직 출시되지 않았으므로 중요한 코드에서 사용하지 않는 것이 좋습니다.

다른 방법으로 JDK javax.imageio.ImageIO 클래스 (일부 예 : https://docs.oracle.com/javase/tutorial/2d/images/saveimage.html)를 살펴볼 수 있습니다.

코드에서 정확히 달성하려는 것은 무엇입니까?

+0

답장을 보내 주셔서 감사합니다. 필자는 쓰기 칼럼을 간과했다. CMYK 이미지를 읽고 RGB로 변환하려고합니다. 또한 300보다 작 으면 DPI를 읽고 300 dpi로 다시 설정하십시오. 나는 포럼을 통해 간 모든 아파치 평민 이미징 (링크) (http://stackoverflow.com/questions/20096810/determine-dpi-of-image-in-java) [링크] (http : // stackoverflow .com/questions/3123574/how-to-cmyk-to-rgb-in-java- 올바르게). – user9383

+0

@luckyfitness 내 [TwelveMonkeys ImageIO] (https://github.com/haraldk/TwelveMonkeys) 플러그인을 사용하면'ImageIO'가 CMYK JPEG를 읽고 RGB 형식으로 다시 쓸 수 있습니다. DPI는 표준 메타 데이터 ('IIOMetadata' 클래스)를 통해 제어 할 수 있습니다. – haraldK

+0

haraldK - 감사합니다. 12Monkeys ImageIO를 확인했지만 최신 버전에서는 JDK.1.8을 사용하고 JDK1.6.x를 사용하고 있습니다. 3.0.x 버전 이후에 수정 된 수정 사항이 있는지 확실하지 않습니다. 또한 dpi에 300으로 다시 저장해야하는지 알려줍니다. – user9383