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