을 BMP는 ImageIO에서 클래스를 사용하는 것 TIFF 출력에서 읽을 수있는 가장 쉬운 방법 :
BufferedImage image = ImageIO.read(inputFile);
ImageIO.write(image, "bmp", new File(outputFile));
유일한 추가 것은 당신은 '당신이 확인되는 일이를 얻기 위해해야 할 것 BMP와 TIFF는이 라이브러리의 플러그인없이 JRE에 의해 처리되지 않으므로 클래스 패스에 JAI ImageIO JAR을 추가했습니다.
JAI ImageIO를 사용할 수없는 경우 기존 코드로 작업 할 수 있지만 추가 작업을해야합니다. 로드중인 TIFF 용으로 작성되는 색상 모델은 아마도 BMP에서 지원하지 않는 색인 된 색상 모델 일 것입니다. 렌더링 힌트에 JAI.KEY_REPLACE_INDEX_COLOR_MODEL 키를 제공하여 JAI.create ("format", ...) 연산으로 바꿀 수 있습니다.
당신은 약간의 행운 임시 이미지로 파일에서 읽은 이미지를 작성하고 임시 이미지 작성하는있을 수 있습니다
BufferedImage image = ImageIO.read(inputFile);
BufferedImage convertedImage = new BufferedImage(image.getWidth(),
image.getHeight(), BufferedImage.TYPE_INT_RGB);
convertedImage.createGraphics().drawRenderedImage(image, null);
ImageIO.write(convertedImage, "bmp", new File(outputFile));
같은 인덱스 색상 모델 문제로 실행하는 경우 내가 궁금하네요을 일반 JAI와 마찬가지입니다. 이상적으로 ImageIO 클래스를 사용하여 가장 간단한 경우를 제외하고 ImageReader 및 ImageWriter 인스턴스를 가져와 읽기 및 쓰기 매개 변수를 적절하게 조정할 수 있지만 ImageIO.read() 및 .write()를 사용하면 당신이 원하는.
는 "ImageIO.write (이미지,"BMP "는 새로운 파일 (출력 _))는"딱딱하지 성공적으로 이미지를 ".bmp"파일로 쓸 수 있습니다. 대신 ".tiff"로 코드를 변경하면 작동합니다. – user224270
죄송합니다 ... 작은 오타가있었습니다. ImageIO.write는 원본 이미지가 아닌 convertedImage를 써야합니다. – Jeff
감사합니다. Jeff. 그것은 일했다! 너는 나의 날을 정말로 구했다;) – user224270