Example usage for java.awt.image BufferedImage TYPE_INT_ARGB

List of usage examples for java.awt.image BufferedImage TYPE_INT_ARGB

Introduction

In this page you can find the example usage for java.awt.image BufferedImage TYPE_INT_ARGB.

Prototype

int TYPE_INT_ARGB

To view the source code for java.awt.image BufferedImage TYPE_INT_ARGB.

Click Source Link

Document

Represents an image with 8-bit RGBA color components packed into integer pixels.

Usage

From source file:cognitivej.vision.overlay.builder.ImageOverlayBuilder.java

/**
 * Saves the base image to the disk.//  ww  w  .j  a  va 2s .c  om
 *
 * @param file - the file where the image will be saved
 * @return this
 */
@NotNull
public ImageOverlayBuilder toDisk(@NotNull File file) {
    try {
        ImageIO.write(copy(bufferedImage, BufferedImage.TYPE_INT_ARGB), "png", file);
    } catch (IOException e) {
        throw new CognitiveException("Could not write to disk", e);
    }
    return this;
}

From source file:it.units.malelab.ege.util.DUMapper.java

private static void saveImage(String fileName, boolean margin, int scale, double[][]... data) {
    BufferedImage bi = new BufferedImage(data[0].length * scale, data[0][0].length * scale,
            BufferedImage.TYPE_INT_ARGB);
    for (int y = 0; y < data[0].length; y++) {
        for (int x = 0; x < data[0][y].length; x++) {
            Color color;//from  www.  j ava2 s.c  o  m
            if (data.length == 1) {
                color = new Color((float) data[0][y][x], (float) data[0][y][x], (float) data[0][y][x], 1);
            } else {
                color = new Color((float) data[0][y][x], (float) data[1][y][x],
                        data.length >= 3 ? (float) data[2][y][x] : 0,
                        data.length >= 4 ? (float) data[3][y][x] : 1);
            }
            if (scale == 1) {
                bi.setRGB(y, x, color.getRGB());
            } else {
                for (int ix = x * scale + (margin ? 1 : 0); ix < (x + 1) * scale - (margin ? 1 : 0); ix++) {
                    for (int iy = y * scale + (margin ? 1 : 0); iy < (y + 1) * scale - (margin ? 1 : 0); iy++) {
                        bi.setRGB(iy, ix, color.getRGB());
                    }
                }
            }
        }
    }
    try {
        ImageIO.write(bi, "PNG", new File(fileName));
    } catch (IOException ex) {
        System.err.printf("Cannot save file \"%s\": %s", fileName, ex.getMessage());
    }
}

From source file:edu.ku.brc.specify.utilapps.sp5utils.Sp5Forms.java

public void generate() {
    BufferedImage bufImage = null;
    if (formFrame != null) {
        Component topComp = formFrame.getContentPane();

        Rectangle rect = topComp.getBounds();
        if (rect.width < 1 || rect.height < 1) {
            System.err.println("Can't create image. " + selectedForm.getTitle());
        } else {//from  w  w w .ja  v a  2  s.  c  om
            bufImage = new BufferedImage(rect.width, rect.height, (BufferedImage.TYPE_INT_ARGB));
            Graphics2D g2 = bufImage.createGraphics();
            topComp.paint(g2);
            g2.dispose();
        }
    }

    if (formIndex < forms.size()) {
        selectedForm = forms.get(formIndex);

        showForm();

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        formFrame.pack();
                        formFrame.repaint();
                    }
                });
            }
        });
    }

    File dir = new File("conversions" + File.separator + namePair.second + "_6" + File.separator + "forms");
    if (!dir.exists()) {
        dir.mkdirs();
    }

    if (bufImage != null) {
        String fName = dir.getAbsolutePath() + File.separator + formName + ".png";
        try {
            File imgFile = new File(fName);
            ImageIO.write(bufImage, "PNG", imgFile);

        } catch (Exception e) {
            edu.ku.brc.af.core.UsageTracker.incrHandledUsageCount();
            edu.ku.brc.exceptions.ExceptionTracker.getInstance().capture(ERDVisualizer.class, e);
            e.printStackTrace();
        }
    }

    if (formIndex >= forms.size()) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        if (formFrame != null)
                            formFrame.setVisible(false);
                        createIndex();
                        UIRegistry.showLocalizedMsg("Done");
                    }
                });
            }
        });
    }

    if (selectedForm != null) {
        formName = selectedForm.getFileName();
    }
}

From source file:nl.softwaredesign.exporter.ODTExportFormat.java

/**
 * TODO Move to utility class?//  w w w  .j a va2 s  . c  o  m
 * Extract the content data (bytes) from the given image.
 * @param icon image to get bytes for
 * @param format desired format for image
 * @param background Color to use as background if transparency in image
 * @param width Desired width of the image in the byte array
 * @param height Desired width of the image in the byte array
 * @return the bytes of the image
 * @throws IOException
 */
private byte[] imageToBytes(ImageIcon icon, String format, Color background, int width, int height)
        throws IOException {
    Iterator writers = ImageIO.getImageWritersByFormatName(format);
    ImageWriter writer = (ImageWriter) writers.next();
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    ImageOutputStream ios = ImageIO.createImageOutputStream(output);
    writer.setOutput(ios);
    BufferedImage img;
    if ("png".equalsIgnoreCase(format) || "gif".equalsIgnoreCase(format)) {
        img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
    } else {
        img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    }
    WaitingObserver observer = new WaitingObserver();
    if (!img.getGraphics().drawImage(icon.getImage(), 0, 0, width, height, background, observer)) {
        try {
            observer.waitForDone();
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
            return new byte[0];
        }
    }
    IIOMetadata metadata = writer.getDefaultImageMetadata(new ImageTypeSpecifier(img),
            writer.getDefaultWriteParam());
    if (format.equalsIgnoreCase("jpg")) {
        Element tree = (Element) metadata.getAsTree("javax_imageio_jpeg_image_1.0");
        Element jfif = (Element) tree.getElementsByTagName("app0JFIF").item(0);
        jfif.setAttribute("Xdensity", Integer.toString(72));
        jfif.setAttribute("Ydensity", Integer.toString(72));
        jfif.setAttribute("resUnits", "1");
        metadata.setFromTree("javax_imageio_jpeg_image_1.0", tree);
    } else {
        double dotsPerMilli = 7.2 / 2.54;
        IIOMetadataNode horiz = new IIOMetadataNode("HorizontalPixelSize");
        horiz.setAttribute("value", Double.toString(dotsPerMilli));
        IIOMetadataNode vert = new IIOMetadataNode("VerticalPixelSize");
        vert.setAttribute("value", Double.toString(dotsPerMilli));
        IIOMetadataNode dim = new IIOMetadataNode("Dimension");
        dim.appendChild(horiz);
        dim.appendChild(vert);
        IIOMetadataNode root = new IIOMetadataNode("javax_imageio_1.0");
        root.appendChild(dim);
        metadata.mergeTree("javax_imageio_1.0", root);
    }

    writer.write(null, new IIOImage(img, null, metadata), null);
    return output.toByteArray();
}

From source file:com.siteview.ecc.report.xls.JRXlsExporter.java

protected void exportImage(JRPrintImage element, JRExporterGridCell gridCell, int colIndex, int rowIndex,
        int emptyCols) throws JRException {
    try {//from w w w . j a  v  a2s .c om
        int topPadding = Math.max(element.getLineBox().getTopPadding().intValue(),
                getImageBorderCorrection(element.getLineBox().getTopPen()));
        int leftPadding = Math.max(element.getLineBox().getLeftPadding().intValue(),
                getImageBorderCorrection(element.getLineBox().getLeftPen()));
        int bottomPadding = Math.max(element.getLineBox().getBottomPadding().intValue(),
                getImageBorderCorrection(element.getLineBox().getBottomPen()));
        int rightPadding = Math.max(element.getLineBox().getRightPadding().intValue(),
                getImageBorderCorrection(element.getLineBox().getRightPen()));

        //pngEncoder.setImage( null );

        int availableImageWidth = element.getWidth() - leftPadding - rightPadding;
        availableImageWidth = availableImageWidth < 0 ? 0 : availableImageWidth;

        int availableImageHeight = element.getHeight() - topPadding - bottomPadding;
        availableImageHeight = availableImageHeight < 0 ? 0 : availableImageHeight;

        JRRenderable renderer = element.getRenderer();

        if (renderer != null && availableImageWidth > 0 && availableImageHeight > 0) {
            if (renderer.getType() == JRRenderable.TYPE_IMAGE) {
                // Image renderers are all asked for their image data and dimension at some point.
                // Better to test and replace the renderer now, in case of lazy load error.
                renderer = JRImageRenderer.getOnErrorRendererForImageData(renderer, element.getOnErrorType());
                if (renderer != null) {
                    renderer = JRImageRenderer.getOnErrorRendererForDimension(renderer,
                            element.getOnErrorType());
                }
            }
        } else {
            renderer = null;
        }

        if (renderer != null) {
            int normalWidth = availableImageWidth;
            int normalHeight = availableImageHeight;

            Dimension2D dimension = renderer.getDimension();
            if (dimension != null) {
                normalWidth = (int) dimension.getWidth();
                normalHeight = (int) dimension.getHeight();
            }

            float xalignFactor = 0f;
            switch (element.getHorizontalAlignment()) {
            case JRAlignment.HORIZONTAL_ALIGN_RIGHT: {
                xalignFactor = 1f;
                break;
            }
            case JRAlignment.HORIZONTAL_ALIGN_CENTER: {
                xalignFactor = 0.5f;
                break;
            }
            case JRAlignment.HORIZONTAL_ALIGN_LEFT:
            default: {
                xalignFactor = 0f;
                break;
            }
            }

            float yalignFactor = 0f;
            switch (element.getVerticalAlignment()) {
            case JRAlignment.VERTICAL_ALIGN_BOTTOM: {
                yalignFactor = 1f;
                break;
            }
            case JRAlignment.VERTICAL_ALIGN_MIDDLE: {
                yalignFactor = 0.5f;
                break;
            }
            case JRAlignment.VERTICAL_ALIGN_TOP:
            default: {
                yalignFactor = 0f;
                break;
            }
            }

            BufferedImage bi = new BufferedImage(element.getWidth(), element.getHeight(),
                    BufferedImage.TYPE_INT_ARGB);
            Graphics2D grx = bi.createGraphics();

            switch (element.getScaleImage()) {
            case JRImage.SCALE_IMAGE_CLIP: {
                int xoffset = (int) (xalignFactor * (availableImageWidth - normalWidth));
                int yoffset = (int) (yalignFactor * (availableImageHeight - normalHeight));

                Shape oldClipShape = grx.getClip();

                grx.clip(new Rectangle(leftPadding, topPadding, availableImageWidth, availableImageHeight));

                try {
                    renderer.render(grx, new Rectangle(xoffset + leftPadding, yoffset + topPadding, normalWidth,
                            normalHeight));
                } finally {
                    grx.setClip(oldClipShape);
                }

                break;
            }
            case JRImage.SCALE_IMAGE_FILL_FRAME: {
                renderer.render(grx,
                        new Rectangle(leftPadding, topPadding, availableImageWidth, availableImageHeight));

                break;
            }
            case JRImage.SCALE_IMAGE_RETAIN_SHAPE:
            default: {
                if (element.getHeight() > 0) {
                    double ratio = (double) normalWidth / (double) normalHeight;

                    if (ratio > (double) availableImageWidth / (double) availableImageHeight) {
                        normalWidth = availableImageWidth;
                        normalHeight = (int) (availableImageWidth / ratio);
                    } else {
                        normalWidth = (int) (availableImageHeight * ratio);
                        normalHeight = availableImageHeight;
                    }

                    int xoffset = leftPadding + (int) (xalignFactor * (availableImageWidth - normalWidth));
                    int yoffset = topPadding + (int) (yalignFactor * (availableImageHeight - normalHeight));

                    renderer.render(grx, new Rectangle(xoffset, yoffset, normalWidth, normalHeight));
                }

                break;
            }
            }

            short mode = backgroundMode;
            short backcolor = whiteIndex;
            if (!isIgnoreCellBackground && gridCell.getCellBackcolor() != null) {
                mode = HSSFCellStyle.SOLID_FOREGROUND;
                backcolor = getNearestColor(gridCell.getCellBackcolor()).getIndex();
            }

            short forecolor = getNearestColor(element.getLineBox().getPen().getLineColor()).getIndex();

            if (element.getMode() == JRElement.MODE_OPAQUE) {
                backcolor = getNearestColor(element.getBackcolor()).getIndex();
            }

            HSSFCellStyle cellStyle = getLoadedCellStyle(mode, backcolor, HSSFCellStyle.ALIGN_LEFT,
                    HSSFCellStyle.VERTICAL_TOP, (short) 0,
                    getLoadedFont(getDefaultFont(), forecolor, null, getLocale()), gridCell);

            createMergeRegion(gridCell, colIndex, rowIndex, cellStyle);

            cell = row.createCell(colIndex);
            //            cell.setCellStyle(cellStyle);

            HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) colIndex, rowIndex,
                    (short) (colIndex + gridCell.getColSpan()),
                    rowIndex + (isCollapseRowSpan ? 1 : gridCell.getRowSpan()));
            anchor.setAnchorType(2);
            //pngEncoder.setImage(bi);
            //int imgIndex = workbook.addPicture(pngEncoder.pngEncode(), HSSFWorkbook.PICTURE_TYPE_PNG);
            int imgIndex = workbook.addPicture(
                    JRImageLoader.loadImageDataFromAWTImage(bi, JRRenderable.IMAGE_TYPE_PNG),
                    HSSFWorkbook.PICTURE_TYPE_PNG);
            patriarch.createPicture(anchor, imgIndex);
        }
    } catch (Exception ex) {
        throw new JRException("The cell cannot be added", ex);
    } catch (Error err) {
        throw new JRException("The cell cannot be added", err);
    }
}

From source file:it.units.malelab.ege.util.DUMapper.java

private static void modifyMap(String fileName, float bins) throws IOException {
    Color[][] colorMap = new Color[3][];
    colorMap[0] = new Color[] { fromCode("000000"), fromCode("b36600"), fromCode("f3b300") };
    colorMap[1] = new Color[] { fromCode("376387"), fromCode("b3b3b3"), fromCode("f3e6b3") };
    colorMap[2] = new Color[] { fromCode("509dc2"), fromCode("b4d3e1"), fromCode("f3f3f3") };
    BufferedImage inImage = ImageIO.read(new File(fileName));
    BufferedImage outRGDImage = new BufferedImage(inImage.getWidth(), inImage.getHeight(),
            BufferedImage.TYPE_INT_ARGB);
    BufferedImage outCMImage = new BufferedImage(inImage.getWidth(), inImage.getHeight(),
            BufferedImage.TYPE_INT_ARGB);
    for (int x = 0; x < inImage.getWidth(); x++) {
        for (int y = 0; y < inImage.getHeight(); y++) {
            Color inColor = new Color(inImage.getRGB(x, y));
            Color outColor = new Color(
                    Math.min((float) Math.floor((float) inColor.getRed() / 255f * bins) / (bins - 1), 1f),
                    Math.min((float) Math.floor((float) inColor.getGreen() / 255f * bins) / (bins - 1), 1f), 0);
            outRGDImage.setRGB(x, y, outColor.getRGB());
            int cmRIndex = (int) Math.min((int) Math.floor((float) inColor.getRed() / 255f * 3), 2);
            int cmGIndex = (int) Math.min((int) Math.floor((float) inColor.getGreen() / 255f * 3), 2);
            outColor = colorMap[cmRIndex][cmGIndex];
            outCMImage.setRGB(x, y, outColor.getRGB());
        }/*from  www . j  av a2  s  .c  om*/
    }
    ImageIO.write(outRGDImage, "PNG",
            new File(fileName.replace(".png", String.format(".rgbdisc%d.png", (int) bins))));
    ImageIO.write(outCMImage, "PNG", new File(fileName.replace(".png", ".cm.png")));
}

From source file:com.rapidminer.gui.new_plotter.engine.jfreechart.PlotInstanceLegendCreator.java

private static Paint createTransparentCheckeredPaint(Color color, int checkerSize) {
    int s = checkerSize;
    BufferedImage bufferedImage = new BufferedImage(2 * s, 2 * s, BufferedImage.TYPE_INT_ARGB);

    Graphics2D g2 = bufferedImage.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, // Anti-alias!
            RenderingHints.VALUE_ANTIALIAS_ON);

    Color c1 = DataStructureUtils.setColorAlpha(color, (int) (color.getAlpha() * .8));
    Color c2 = DataStructureUtils.setColorAlpha(color, (int) (color.getAlpha() * .2));
    g2.setStroke(new BasicStroke(0));
    g2.setPaint(c2);//from w w  w.  j  ava 2  s  . c  o  m
    g2.setColor(c2);
    g2.fillRect(0, 0, s, s);
    g2.fillRect(s, s, s, s);
    g2.setPaint(c1);
    g2.setColor(c1);
    g2.fillRect(0, s, s, s);
    g2.fillRect(s, 0, s, s);

    // paint with the texturing brush
    Rectangle2D rect = new Rectangle2D.Double(0, 0, 2 * s, 2 * s);
    return new TexturePaint(bufferedImage, rect);
}

From source file:AppSpringLayout.java

private BufferedImage toBufferedImage(Image imageToGetBuffered) {

    if (imageToGetBuffered instanceof BufferedImage) {
        return (BufferedImage) imageToGetBuffered;
    }//from  w  ww  . j  a va 2s  . c  om

    // Create a buffered image with transparency
    BufferedImage bimage = new BufferedImage(imageToGetBuffered.getWidth(null),
            imageToGetBuffered.getHeight(null), BufferedImage.TYPE_INT_ARGB);

    return bimage;
}

From source file:TextureByReference.java

static void printType(BufferedImage bImage) {
    int type = bImage.getType();
    if (type == BufferedImage.TYPE_4BYTE_ABGR) {
        System.out.println("TYPE_4BYTE_ABGR");
    } else if (type == BufferedImage.TYPE_INT_ARGB) {
        System.out.println("TYPE_INT_ARGB");
    } else if (type == BufferedImage.TYPE_3BYTE_BGR) {
        System.out.println("TYPE_3BYTE_BGR");
    } else if (type == BufferedImage.TYPE_CUSTOM) {
        System.out.println("TYPE_CUSTOM");
    } else// w w w .  j a va  2 s.  c  om
        System.out.println(type);
}

From source file:lucee.runtime.img.Image.java

public static void writeOutGif(BufferedImage src, OutputStream os) throws IOException {
    BufferedImage dst = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_INT_ARGB);
    QuantizeFilter filter = new QuantizeFilter();
    filter.setSerpentine(true);/*from   w w  w  .  ja va  2s .c o  m*/
    filter.setDither(true);
    //filter.setNumColors(8);
    filter.filter(src, dst);

    //image(Quantizer.quantize(image(), 8));
    try {
        GifEncoder enc = new GifEncoder(dst);
        enc.Write(os);
        os.flush();
    } catch (AWTException e) {
        throw new IOException(e.getMessage());
    }
}