0
하이퍼 링크에서 많은 (수백 개의) 이미지가 참조되는 보고서 템플릿을 디자인하려고합니다. 나는 문서가 25MB에서 (이메일 및 다른 이유로)가되고 싶어요, 그래서 나는 다음과 같은 코드를 사용하여 이미지를 압축하기 위해 노력하고있어 :apache의 이미지 POI XWPF 문서의 색상 왜곡이 있습니다.
//I get the input stream
InputStream ins = entity.images.getInputStream(img);
BufferedImage bufImg = ImageIO.read(ins);
//I compress the image
ByteArrayOutputStream compressed = new ByteArrayOutputStream();
ImageOutputStream outputStream = ImageIO.createImageOutputStream(compressed);
ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next();
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
jpgWriteParam.setCompressionQuality(0.98f);
jpgWriter.setOutput(outputStream);
jpgWriter.write(null, new IIOImage(bufImg, null, null), jpgWriteParam);
jpgWriter.dispose();
byte[] jpegData = compressed.toByteArray();
//I attempt to add the compressed image
imgRun.addPicture(new ByteArrayInputStream(jpegData), Document.PICTURE_TYPE_JPEG,"text", Units.toEMU(newWidth), Units.toEMU(newHeight));
이미지는 문서에 쓸 수 있지만 자신의 색이 왜곡됩니다. 내 경우에는 모두 붉은 색/오렌지색입니다. 이/원인을 일으키는 원인에 대한 아이디어가 있습니까?
답변이 없지만 파일에 JPG를 사용하고 PNG로 추가하는 것처럼 보입니다. 코드가 맞습니까? – stdunbar
나는 게시물을 고쳤다. PICTURE_TYPE_JPEG라고해야했다. 그러나 문제는 지속됩니다. 어떤 아이디어? –
이미지가 문서에 들어가기 전에 확인됩니까? – stdunbar