IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, param); imageMetadata = setDPIViaAPI(imageMetadata, dpiX, dpiY); oimage.setMetadata(imageMetadata);
IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, param); imageMetadata = setDPIViaAPI(imageMetadata, dpiX, dpiY); iioImage.setMetadata(imageMetadata);
RenderedImage image = getMyImage(); Iterator<ImageWriter> iterator = ImageIO.getImageWritersBySuffix( "png" ); if(!iterator.hasNext()) throw new Error( "No image writer for PNG" ); ImageWriter imagewriter = iterator.next(); ByteArrayOutputStream bytes = new ByteArrayOutputStream(); imagewriter.setOutput( ImageIO.createImageOutputStream( bytes ) ); // Create & populate metadata PNGMetadata metadata = new PNGMetadata(); // see http://www.w3.org/TR/PNG-Chunks.html#C.tEXt for standardized keywords metadata.tEXt_keyword.add( "Title" ); metadata.tEXt_text.add( "Mandelbrot" ); metadata.tEXt_keyword.add( "Comment" ); metadata.tEXt_text.add( "..." ); metadata.tEXt_keyword.add( "MandelbrotCoords" ); // custom keyword metadata.tEXt_text.add( fractal.getCoords().toString() ); // Render the PNG to memory IIOImage iioImage = new IIOImage( image, null, null ); iioImage.setMetadata( metadata ); // Attach the metadata imagewriter.write( null, iioImage, null );
iioImage.setMetadata(meta);
iioImage.setMetadata(meta);
iioImage.setMetadata(meta);
IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, null); imageMetadata = setDPIViaAPI(imageMetadata, dpiX, dpiY); oimage.setMetadata(imageMetadata);
/** * Copy jpeg meta data (exif) from source to dest and save it to out * * @param source * @param dest * @param out * @throws IOException */ public static void copyJpegMetaData(InputStream source, InputStream dest, ImageOutputStream out) throws IOException { // Read meta data from src image Iterator iter = ImageIO.getImageReadersByFormatName("jpeg"); ImageReader reader=(ImageReader) iter.next(); ImageInputStream iis = new MemoryCacheImageInputStream(source); reader.setInput(iis); IIOMetadata metadata = reader.getImageMetadata(0); iis.close(); // Read dest image ImageInputStream outIis = new MemoryCacheImageInputStream(dest); reader.setInput(outIis); IIOImage image = reader.readAll(0,null); image.setMetadata(metadata); outIis.close(); // write dest image iter = ImageIO.getImageWritersByFormatName("jpeg"); ImageWriter writer=(ImageWriter) iter.next(); writer.setOutput(out); writer.write(image); } }