Search in sources :

Example 26 with ImageWriteParam

use of javax.imageio.ImageWriteParam in project jdk8u_jdk by JetBrains.

the class CompressionVals method main.

public static void main(String[] args) {
    ImageWriteParam iwp = new JPEGImageWriteParam(null);
    iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
    float[] vals = iwp.getCompressionQualityValues();
    String[] descs = iwp.getCompressionQualityDescriptions();
    if (vals.length != (descs.length + 1)) {
        throw new RuntimeException("Test failed: Values array is not " + "one larger than descriptions array");
    }
}
Also used : JPEGImageWriteParam(javax.imageio.plugins.jpeg.JPEGImageWriteParam) ImageWriteParam(javax.imageio.ImageWriteParam) JPEGImageWriteParam(javax.imageio.plugins.jpeg.JPEGImageWriteParam)

Example 27 with ImageWriteParam

use of javax.imageio.ImageWriteParam in project jdk8u_jdk by JetBrains.

the class BooleanAttributes method test.

public static void test(String mimeType, boolean useStreamMeta, String metaXml, String... boolXpaths) throws Exception {
    BufferedImage img = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB);
    ImageWriter iw = ImageIO.getImageWritersByMIMEType(mimeType).next();
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    ImageOutputStream ios = new MemoryCacheImageOutputStream(os);
    iw.setOutput(ios);
    ImageWriteParam param = null;
    IIOMetadata streamMeta = iw.getDefaultStreamMetadata(param);
    IIOMetadata imageMeta = iw.getDefaultImageMetadata(new ImageTypeSpecifier(img), param);
    IIOMetadata meta = useStreamMeta ? streamMeta : imageMeta;
    Source src = new StreamSource(new StringReader(metaXml));
    DOMResult dst = new DOMResult();
    transform(src, dst);
    Document doc = (Document) dst.getNode();
    Element node = doc.getDocumentElement();
    String metaFormat = node.getNodeName();
    // Verify that the default metadata gets formatted correctly.
    verify(meta.getAsTree(metaFormat), boolXpaths, false);
    meta.mergeTree(metaFormat, node);
    // Verify that the merged metadata gets formatte correctly.
    verify(meta.getAsTree(metaFormat), boolXpaths, true);
    iw.write(streamMeta, new IIOImage(img, null, imageMeta), param);
    iw.dispose();
    ios.close();
    ImageReader ir = ImageIO.getImageReader(iw);
    byte[] bytes = os.toByteArray();
    if (bytes.length == 0)
        throw new AssertionError("Zero length image file");
    ByteArrayInputStream is = new ByteArrayInputStream(bytes);
    ImageInputStream iis = new MemoryCacheImageInputStream(is);
    ir.setInput(iis);
    if (useStreamMeta)
        meta = ir.getStreamMetadata();
    else
        meta = ir.getImageMetadata(0);
    // Verify again after writing and re-reading the image
    verify(meta.getAsTree(metaFormat), boolXpaths, true);
}
Also used : DOMResult(javax.xml.transform.dom.DOMResult) StreamSource(javax.xml.transform.stream.StreamSource) Element(org.w3c.dom.Element) MemoryCacheImageInputStream(javax.imageio.stream.MemoryCacheImageInputStream) ImageInputStream(javax.imageio.stream.ImageInputStream) ImageWriter(javax.imageio.ImageWriter) MemoryCacheImageInputStream(javax.imageio.stream.MemoryCacheImageInputStream) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ImageWriteParam(javax.imageio.ImageWriteParam) Document(org.w3c.dom.Document) BufferedImage(java.awt.image.BufferedImage) ImageTypeSpecifier(javax.imageio.ImageTypeSpecifier) StreamSource(javax.xml.transform.stream.StreamSource) Source(javax.xml.transform.Source) IIOImage(javax.imageio.IIOImage) MemoryCacheImageOutputStream(javax.imageio.stream.MemoryCacheImageOutputStream) IIOMetadata(javax.imageio.metadata.IIOMetadata) ByteArrayInputStream(java.io.ByteArrayInputStream) StringReader(java.io.StringReader) ImageReader(javax.imageio.ImageReader) ImageOutputStream(javax.imageio.stream.ImageOutputStream) MemoryCacheImageOutputStream(javax.imageio.stream.MemoryCacheImageOutputStream)

Example 28 with ImageWriteParam

use of javax.imageio.ImageWriteParam in project jdk8u_jdk by JetBrains.

the class BMPPluginTest method main.

public static void main(String[] args) {
    if (args.length > 0) {
        format = args[0];
        System.out.println("Test format " + format);
    }
    init();
    System.out.println("IR=" + ir);
    System.out.println("IW=" + iw);
    ImageIO.setUseCache(false);
    for (int i = 0; i < types.length; i++) {
        boolean bPassed = true;
        Object reason = null;
        try {
            BufferedImage image = createTestImage(types[i]);
            ImageWriteParam param = iw.getDefaultWriteParam();
            BMPPluginTest t = new BMPPluginTest(image, param);
            boolean res = false;
            res = t.test();
            if (!res) {
                bPassed = false;
                reason = new String("Null result");
            }
        } catch (IllegalArgumentException ex) {
            System.out.println("Expected exception type was caught: " + ex);
        } catch (Throwable ex) {
            System.out.println("FAILED");
            ex.printStackTrace();
            bPassed = false;
            reason = ex;
            throw new RuntimeException("Test for type " + types[i] + " FAILED due to exception");
        }
        /*
            System.out.println("Type " + types[i] + " result: " +
                               (bPassed ? "PASSED" : "FAILED") +
                               ((reason != null) ? (" Reason: " + reason) : ""));
*/
        System.out.println("Test for type " + types[i] + " PASSED");
    }
    System.out.println("END OF TEST");
}
Also used : ImageWriteParam(javax.imageio.ImageWriteParam) BufferedImage(java.awt.image.BufferedImage)

Example 29 with ImageWriteParam

use of javax.imageio.ImageWriteParam in project jdk8u_jdk by JetBrains.

the class ImageWriteParamMisc method test4434886.

private static void test4434886() {
    ImageWriteParam iwp = new ImageWriteParam4434886();
    iwp.setTilingMode(ImageWriteParam.MODE_EXPLICIT);
    try {
        iwp.setTiling(-1, -2, -3, -4);
        throw new RuntimeException("Failed to get IAE!");
    } catch (IllegalArgumentException e) {
    }
}
Also used : ImageWriteParam(javax.imageio.ImageWriteParam)

Example 30 with ImageWriteParam

use of javax.imageio.ImageWriteParam in project screenbird by adamhub.

the class ImageUtil method markAndCompress.

/**
     * Adds a watermark to the image and compresses it.
     * @param imageSource
     * @param compressionQuality
     * @param mark
     * @param markImageSource 
     */
public static void markAndCompress(String imageSource, float compressionQuality, boolean mark, String markImageSource) {
    try {
        File fileImageSource = new File(imageSource);
        if (!fileImageSource.exists()) {
            throw new ImageDoesNotExistException("Mark Image doesn't exists: " + fileImageSource.getAbsolutePath());
        }
        BufferedImage bufferedImage = ImageIO.read(fileImageSource);
        if (mark) {
            addMark(bufferedImage, markImageSource, 1.0f, ImageUtil.MARK_LEFT_BOTTOM);
        }
        // Get a jpeg writer
        ImageWriter writer = null;
        Iterator iter = ImageIO.getImageWritersByFormatName("jpg");
        if (iter.hasNext()) {
            writer = (ImageWriter) iter.next();
        }
        if (writer == null) {
            throw new IOException("Could not get JPEG writer");
        }
        // Prepare output file
        ImageOutputStream ios = ImageIO.createImageOutputStream(fileImageSource);
        if (ios == null) {
            throw new IOException("Could not open image stream to write image watermark");
        }
        writer.setOutput(ios);
        // Set the compression quality
        ImageWriteParam iwparam = new JPEGImageWriteParam(Locale.getDefault());
        iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
        if (compressionQuality < 0.0F || compressionQuality > 1.0F) {
            compressionQuality = 1.0F;
        }
        iwparam.setCompressionQuality(compressionQuality);
        // Write the image
        writer.write(null, new IIOImage(bufferedImage, null, null), iwparam);
        // Cleanup
        ios.flush();
        writer.dispose();
        ios.close();
    } catch (IllegalArgumentException e) {
        log(e);
    } catch (IOException e) {
        log(e);
    } catch (ImageDoesNotExistException e) {
        log(e);
    }
}
Also used : ImageWriter(javax.imageio.ImageWriter) Iterator(java.util.Iterator) JPEGImageWriteParam(javax.imageio.plugins.jpeg.JPEGImageWriteParam) IOException(java.io.IOException) ImageWriteParam(javax.imageio.ImageWriteParam) JPEGImageWriteParam(javax.imageio.plugins.jpeg.JPEGImageWriteParam) File(java.io.File) BufferedImage(java.awt.image.BufferedImage) ImageOutputStream(javax.imageio.stream.ImageOutputStream) IIOImage(javax.imageio.IIOImage)

Aggregations

ImageWriteParam (javax.imageio.ImageWriteParam)48 IIOImage (javax.imageio.IIOImage)32 ImageWriter (javax.imageio.ImageWriter)32 BufferedImage (java.awt.image.BufferedImage)27 ImageOutputStream (javax.imageio.stream.ImageOutputStream)24 ByteArrayOutputStream (java.io.ByteArrayOutputStream)14 IIOMetadata (javax.imageio.metadata.IIOMetadata)14 File (java.io.File)13 IOException (java.io.IOException)13 ByteArrayInputStream (java.io.ByteArrayInputStream)10 Iterator (java.util.Iterator)10 ImageTypeSpecifier (javax.imageio.ImageTypeSpecifier)10 Rectangle (java.awt.Rectangle)6 ImageReader (javax.imageio.ImageReader)5 ImageInputStream (javax.imageio.stream.ImageInputStream)5 MemoryCacheImageOutputStream (javax.imageio.stream.MemoryCacheImageOutputStream)5 JPEGImageWriteParam (javax.imageio.plugins.jpeg.JPEGImageWriteParam)4 Graphics2D (java.awt.Graphics2D)3 FileImageOutputStream (javax.imageio.stream.FileImageOutputStream)3 Color (java.awt.Color)2