javax.imageio.ImageTypeSpecifier#createFromRenderedImage ( )源码实例Demo

下面列出了javax.imageio.ImageTypeSpecifier#createFromRenderedImage ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: openjdk-jdk9   文件: CanEncodeShort.java
public static void main(String[] args) {
    for (int i = 0; i < types.length; i++) {
        BufferedImage img = new BufferedImage(32, 32, types[i]);

        ImageTypeSpecifier spec =
            ImageTypeSpecifier.createFromRenderedImage(img);

        Iterator writers = ImageIO.getImageWriters(spec, "png");

        if (!writers.hasNext()) {
            throw new RuntimeException("Test failed: " +
                                       "no PNG writer found for type " +
                                       typeNames[i]);
        }
    }
}
 
源代码2 项目: jdk8u_jdk   文件: CanEncodeShort.java
public static void main(String[] args) {
    for (int i = 0; i < types.length; i++) {
        BufferedImage img = new BufferedImage(32, 32, types[i]);

        ImageTypeSpecifier spec =
            ImageTypeSpecifier.createFromRenderedImage(img);

        Iterator writers = ImageIO.getImageWriters(spec, "png");

        if (!writers.hasNext()) {
            throw new RuntimeException("Test failed: " +
                                       "no PNG writer found for type " +
                                       typeNames[i]);
        }
    }
}
 
源代码3 项目: openjdk-jdk9   文件: CanEncodeIndexed.java
public static void main(String[] args) {
    BufferedImage img = new BufferedImage(32, 32,
                                          BufferedImage.TYPE_BYTE_INDEXED);

    ImageTypeSpecifier spec =
        ImageTypeSpecifier.createFromRenderedImage(img);

    Iterator writers = ImageIO.getImageWriters(spec, "jpeg");

    if (!writers.hasNext()) {
        throw new RuntimeException("Test failed: " +
                                   "no JPEG writer found for " +
                                   "image with IndexColorModel");
    }
}
 
源代码4 项目: jdk8u_jdk   文件: CanEncodeIndexed.java
public static void main(String[] args) {
    BufferedImage img = new BufferedImage(32, 32,
                                          BufferedImage.TYPE_BYTE_INDEXED);

    ImageTypeSpecifier spec =
        ImageTypeSpecifier.createFromRenderedImage(img);

    Iterator writers = ImageIO.getImageWriters(spec, "jpeg");

    if (!writers.hasNext()) {
        throw new RuntimeException("Test failed: " +
                                   "no JPEG writer found for " +
                                   "image with IndexColorModel");
    }
}
 
源代码5 项目: tess4j   文件: ImageIOHelper.java
public static List<File> createTiffFiles(List<IIOImage> imageList, int index, int dpiX, int dpiY) throws IOException {
    List<File> tiffFiles = new ArrayList<File>();

    //Set up the writeParam
    TIFFImageWriteParam tiffWriteParam = new TIFFImageWriteParam(Locale.US);
    tiffWriteParam.setCompressionMode(ImageWriteParam.MODE_DISABLED);

    //Get tiff writer and set output to file
    Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(TIFF_FORMAT);
    if (!writers.hasNext()) {
        throw new RuntimeException(JAI_IMAGE_WRITER_MESSAGE);
    }
    ImageWriter writer = writers.next();

    //Get the stream metadata
    IIOMetadata streamMetadata = writer.getDefaultStreamMetadata(tiffWriteParam);

    // all if index == -1; otherwise, only index-th
    for (IIOImage oimage : (index == -1 ? imageList : imageList.subList(index, index + 1))) {
        if (dpiX != 0 && dpiY != 0) {
            // Get the default image metadata.
            ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(oimage.getRenderedImage());
            ImageWriteParam param = writer.getDefaultWriteParam();
            IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, param);
            imageMetadata = setDPIViaAPI(imageMetadata, dpiX, dpiY);
            oimage.setMetadata(imageMetadata);
        }

        File tiffFile = File.createTempFile(OUTPUT_FILE_NAME, TIFF_EXT);
        try (ImageOutputStream ios = ImageIO.createImageOutputStream(tiffFile)) {
            writer.setOutput(ios);
            writer.write(streamMetadata, oimage, tiffWriteParam);
            tiffFiles.add(tiffFile);
        }
    }
    writer.dispose();

    return tiffFiles;
}
 
源代码6 项目: openjdk-jdk9   文件: LogicalScreenDimensionTest.java
public static void main(String[] args) throws IOException {
    String format = "GIF";
    ImageWriter writer =
            ImageIO.getImageWritersByFormatName(format).next();
    if (writer == null) {
        throw new RuntimeException("No available writers for " + format);
    }

    BufferedImage img = createTestImage(100, 100, BufferedImage.TYPE_BYTE_GRAY);

    ImageWriteParam p = writer.getDefaultWriteParam();
    ImageTypeSpecifier type =
        ImageTypeSpecifier.createFromRenderedImage(img);
    IIOMetadata inImageMetadata =
        writer.getDefaultImageMetadata(type, p);

    IIOMetadata inStreamMetadata = writer.getDefaultStreamMetadata(p);

    // write and read image
    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    ImageOutputStream ios = ImageIO.createImageOutputStream(baos);
    writer.setOutput(ios);

    writer.write(inStreamMetadata, new IIOImage(img, null, inImageMetadata), p);

    ios.flush();
    ios.close();

    // read result
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
    ImageInputStream iis = ImageIO.createImageInputStream(bais);
    ImageReader reader = ImageIO.getImageReader(writer);
    reader.setInput(iis);

    IIOMetadata outStreamMetadata = reader.getStreamMetadata();

    GIFStreamMetadata gifStreamMetadata = (GIFStreamMetadata)outStreamMetadata;

    if (gifStreamMetadata.logicalScreenWidth != img.getWidth() ||
            gifStreamMetadata.logicalScreenHeight != img.getHeight()) {
        throw new RuntimeException("Test failed due to wrong logical screen dimension.");
    }
}
 
源代码7 项目: jdk8u_jdk   文件: LogicalScreenDimensionTest.java
public static void main(String[] args) throws IOException {
    String format = "GIF";
    ImageWriter writer =
            ImageIO.getImageWritersByFormatName(format).next();
    if (writer == null) {
        throw new RuntimeException("No available writers for " + format);
    }

    BufferedImage img = createTestImage(100, 100, BufferedImage.TYPE_BYTE_GRAY);

    ImageWriteParam p = writer.getDefaultWriteParam();
    ImageTypeSpecifier type =
        ImageTypeSpecifier.createFromRenderedImage(img);
    IIOMetadata inImageMetadata =
        writer.getDefaultImageMetadata(type, p);

    IIOMetadata inStreamMetadata = writer.getDefaultStreamMetadata(p);

    // write and read image
    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    ImageOutputStream ios = ImageIO.createImageOutputStream(baos);
    writer.setOutput(ios);

    writer.write(inStreamMetadata, new IIOImage(img, null, inImageMetadata), p);

    ios.flush();
    ios.close();

    // read result
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
    ImageInputStream iis = ImageIO.createImageInputStream(bais);
    ImageReader reader = ImageIO.getImageReader(writer);
    reader.setInput(iis);

    IIOMetadata outStreamMetadata = reader.getStreamMetadata();

    GIFStreamMetadata gifStreamMetadata = (GIFStreamMetadata)outStreamMetadata;

    if (gifStreamMetadata.logicalScreenWidth != img.getWidth() ||
            gifStreamMetadata.logicalScreenHeight != img.getHeight()) {
        throw new RuntimeException("Test failed due to wrong logical screen dimension.");
    }
}
 
源代码8 项目: victor   文件: ImageIOImageWriter.java
/**
 * @see ImageWriter#writeImage(RenderedImage, OutputStream, ImageWriterParams)
 */
public void writeImage(RenderedImage image, OutputStream out, 
        ImageWriterParams params) 
            throws IOException {
    Iterator iter;
    iter = ImageIO.getImageWritersByMIMEType(getMIMEType());
    javax.imageio.ImageWriter iiowriter = null;
    try {
        iiowriter = (javax.imageio.ImageWriter)iter.next();
        if (iiowriter != null) {
            iiowriter.addIIOWriteWarningListener(this);

            ImageOutputStream imgout = null;
            try {
                imgout = ImageIO.createImageOutputStream(out);
                ImageWriteParam iwParam = getDefaultWriteParam(iiowriter, image, params);

                ImageTypeSpecifier type;
                if (iwParam.getDestinationType() != null) {
                    type = iwParam.getDestinationType();
                } else {
                    type = ImageTypeSpecifier.createFromRenderedImage(image);
                }

                //Handle metadata
                IIOMetadata meta = iiowriter.getDefaultImageMetadata(
                        type, iwParam);
                //meta might be null for some JAI codecs as they don't support metadata
                if (params != null && meta != null) {
                    meta = updateMetadata(meta, params); 
                }

                //Write image
                iiowriter.setOutput(imgout);
                IIOImage iioimg = new IIOImage(image, null, meta);
                iiowriter.write(null, iioimg, iwParam);
            } finally {
                if (imgout != null) {
                    imgout.close();
                }
            }
        } else {
            throw new UnsupportedOperationException("No ImageIO codec for writing " 
                    + getMIMEType() + " is available!");
        }
    } finally {
        if (iiowriter != null) {
            iiowriter.dispose();
        }
    }
}
 
源代码9 项目: openjdk-jdk9   文件: ReadMalformedPngTest.java
private static byte[] createTestPng() throws IOException {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    BufferedImage img = createTestImage();

    try {
        ImageOutputStream ios = ImageIO.createImageOutputStream(baos);

        ImageWriter w = ImageIO.getImageWritersByFormatName("PNG").next();

        w.setOutput(ios);

        ImageWriteParam p = w.getDefaultWriteParam();

        ImageTypeSpecifier t = ImageTypeSpecifier.createFromRenderedImage(img);

        IIOMetadata m = w.getDefaultImageMetadata(t, p);

        String nativeMetadataFormat = m.getNativeMetadataFormatName();

        Node root = m.getAsTree(nativeMetadataFormat);

        IIOMetadataNode textEntry = new IIOMetadataNode("tEXtEntry");
        textEntry.setAttribute("keyword", "comment");
        textEntry.setAttribute("value", "This is a test image for JDK-6945174");

        IIOMetadataNode text = new IIOMetadataNode("tEXt");
        text.appendChild(textEntry);

        root.appendChild(text);

        m.mergeTree(nativeMetadataFormat, root);

        IIOImage iio_img = new IIOImage(img, null, m);

        w.write(iio_img);

        w.dispose();
        ios.flush();
        ios.close();
    } catch (IOException e) {
        throw new RuntimeException("Test failed.", e);
    }

    baos.flush();

    byte[] data = baos.toByteArray();

    adjustCommentLength(Integer.MAX_VALUE + 0x1000, data);

    return data;
}