Hi;
I am converting a file from one format to PNG and the DPI and bits/pixel are not
carrying over. The DPI is always -1 and the PNG is always 24 DPI.
Partial code here:
ImageInputStream imageInput = ImageIO.createImageInputStream(new
ByteArrayInputStream(image));
Iterator it = ImageIO.getImageReaders("bmp");
ImageReader reader = null;
while(it.hasNext()) {
Object obj = it.next();
if (! (obj instanceof ImageReader))
continue;
reader = (ImageReader) obj;
if (reader.getOriginatingProvider().isStandardImageMetadataFormatSupported())
break;
}
reader.setInput(imageInput);
IIOMetadata meta = reader.getImageMetadata(0);
it = ImageIO.getImageWritersByFormatName(HtmlImage.typeToStr(formats[0]));
ImageWriter writer = null;
while(it.hasNext()) {
writer = (ImageWriter)it.next();
if (writer.getOriginatingProvider().isStandardImageMetadataFormatSupported())
break;
}
ImageWriteParam writeParam = writer.getDefaultWriteParam();
if (writeParam.canWriteCompressed()) {
writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
writeParam.setCompressionQuality(0.95f);
}
RenderedImage ri = reader.read(0);
ByteArrayOutputStream out = new ByteArrayOutputStream();
MemoryCacheImageOutputStream mcios = new MemoryCacheImageOutputStream(out);
writer.setOutput(mcios);
writer.write(null, new IIOImage(ri, null, meta), writeParam);
reader.dispose();
imageInput.close();
writer.dispose();
mcios.close();
http://www.javadesktop.org/forums/thread.jspa?messageID=125658𞫚