Example usage for java.awt.image BufferedImage TYPE_4BYTE_ABGR

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

Introduction

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

Prototype

int TYPE_4BYTE_ABGR

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

Click Source Link

Document

Represents an image with 8-bit RGBA color components with the colors Blue, Green, and Red stored in 3 bytes and 1 byte of alpha.

Usage

From source file:org.deegree.ogcwebservices.wms.dataaccess.ID2PInterpolation.java

public BufferedImage perform(GetLegendGraphic glg) {

    BufferedImage bi = new BufferedImage(150, colorMap.size() * 25, BufferedImage.TYPE_4BYTE_ABGR);
    Iterator<double[]> iterator = colorMap.keySet().iterator();
    List<double[]> list = new ArrayList<double[]>(colorMap.size());

    while (iterator.hasNext()) {
        double[] ds = iterator.next();
        list.add(ds);//w  w w .  j  a v a 2 s. co  m
    }

    for (int i = list.size() - 1; 0 <= i; i--) {
        for (int j = 0; j < i; j++) {
            if (list.get(j + 1)[0] < list.get(j)[0]) {
                double[] ds = list.get(j + 1);
                list.set(j + 1, list.get(j));
                list.set(j, ds);
            }
        }
    }

    int i = 0;
    Graphics g = bi.getGraphics();
    for (double[] ds : list) {
        Color color = colorMap.get(ds);
        g.setColor(color);
        g.fillRect(2, 2 + i * 25, 20, 20);
        g.setColor(Color.BLACK);
        g.drawRect(2, 2 + i * 25, 20, 20);
        g.drawString(Double.toString(ds[0]) + " - " + Double.toString(ds[1]), 25, 17 + i * 25);
        i++;
    }
    g.dispose();
    return bi;

}

From source file:org.eclipse.birt.chart.device.g2d.G2dRendererBase.java

protected java.awt.Image createImageFromModel(Fill imageModel) throws ChartException {

    java.awt.Image img = null;/*from  ww w  . jav  a 2  s  .co m*/
    if (imageModel instanceof EmbeddedImage) {
        try {
            byte[] data = Base64.decodeBase64(((EmbeddedImage) imageModel).getData().getBytes());

            img = createImage(data);
        } catch (Exception ilex) {
            throw new ChartException(ChartDeviceExtensionPlugin.ID, ChartException.RENDERING, ilex);
        }
    } else if (imageModel instanceof PatternImage) {
        PatternImage pi = (PatternImage) imageModel;
        byte[] data = PatternImageUtil.createImageData(pi, ByteColorModel.RGBA);
        BufferedImage bimg = new BufferedImage(8, 8, BufferedImage.TYPE_4BYTE_ABGR);
        img = bimg;
        WritableRaster raster = bimg.getRaster();
        raster.setDataElements(0, 0, 8, 8, data);
        bimg.flush();
    } else if (imageModel instanceof org.eclipse.birt.chart.model.attribute.Image) {
        if (((org.eclipse.birt.chart.model.attribute.Image) imageModel).getSource() == ImageSourceType.STATIC) {
            try {
                final String sUrl = ((org.eclipse.birt.chart.model.attribute.Image) imageModel).getURL();
                img = (java.awt.Image) _ids.loadImage(SecurityUtil.newURL(sUrl));
            } catch (ChartException ilex) {
                throw new ChartException(ChartDeviceExtensionPlugin.ID, ChartException.RENDERING, ilex);
            } catch (MalformedURLException muex) {
                throw new ChartException(ChartDeviceExtensionPlugin.ID, ChartException.RENDERING, muex);
            }
        }
    }

    return img;

}

From source file:org.esa.nest.dat.layers.maptools.components.CompassComponent.java

public CompassComponent(final RasterDataNode raster) {
    image = new BufferedImage(roseIcon.getIconWidth(), roseIcon.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR);
    final Graphics2D g = image.createGraphics();
    g.drawImage(roseIcon.getImage(), null, null);

    rasterWidth = raster.getRasterWidth();
    rasterHeight = raster.getRasterHeight();
    margin = (int) (Math.min(rasterWidth, rasterHeight) * marginPct);
    point1 = new PixelPos(margin, margin);

    final GeoCoding geoCoding = raster.getGeoCoding();
    if (geoCoding == null) {
        tail = head = point1;//from  w w  w.j av a  2  s . c  o m
        angle = Double.NaN;
        return;
    }

    final GeoPos point1Geo = geoCoding.getGeoPos(point1, null);
    final GeoPos point2Geo = geoCoding.getGeoPos(new PixelPos(rasterWidth / 2, rasterHeight / 2), null);
    final PixelPos point2 = geoCoding.getPixelPos(new GeoPos(point2Geo.getLat(), point1Geo.getLon()), null);

    final double op = point1.x - point2.x;
    final double hyp = FastMath.hypot(op, point1.y - point2.y);
    angle = FastMath.asin(op / hyp);

    if (point1Geo.getLat() < point2Geo.getLat()) {
        tail = point1;
        head = point2;
        angle += Math.PI;
    } else {
        tail = point2;
        head = point1;
    }
}

From source file:org.esa.s1tbx.dat.layers.maptools.components.CompassComponent.java

public CompassComponent(final RasterDataNode raster) {
    image = new BufferedImage(roseIcon.getIconWidth(), roseIcon.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR);
    final Graphics2D g = image.createGraphics();
    g.drawImage(roseIcon.getImage(), null, null);

    rasterWidth = raster.getRasterWidth();
    rasterHeight = raster.getRasterHeight();
    margin = (int) (Math.min(rasterWidth, rasterHeight) * marginPct);
    point1 = new PixelPos(margin, margin);

    final GeoCoding geoCoding = raster.getGeoCoding();
    if (geoCoding == null) {
        tail = head = point1;/*from  w w  w  .  j av a 2 s.  co m*/
        angle = Double.NaN;
        return;
    }

    final GeoPos point1Geo = geoCoding.getGeoPos(point1, null);
    final GeoPos point2Geo = geoCoding.getGeoPos(new PixelPos(rasterWidth / 2, rasterHeight / 2), null);
    final PixelPos point2 = geoCoding.getPixelPos(new GeoPos(point2Geo.getLat(), point1Geo.getLon()), null);

    final double op = point1.x - point2.x;
    final double hyp = FastMath.hypot(op, point1.y - point2.y);
    angle = FastMath.asin(op / hyp);

    if (point1Geo.getLat() < point2Geo.getLat()) {
        tail = point1;
        head = point2;
        angle += Constants.PI;
    } else {
        tail = point2;
        head = point1;
    }
}

From source file:org.geoserver.catalog.impl.CatalogBuilderIntTest.java

private void createTimeMosaic(File mosaic, int fileCount) throws Exception {
    if (mosaic.exists()) {
        if (mosaic.isDirectory()) {
            FileUtils.deleteDirectory(mosaic);
        } else {//from  w w  w  .  jav  a  2  s  .c om
            mosaic.delete();
        }
    }
    mosaic.mkdir();
    System.out.println(mosaic.getAbsolutePath());

    // build the reference coverage into a byte array
    GridCoverageFactory factory = new GridCoverageFactory();
    BufferedImage bi = new BufferedImage(10, 10, BufferedImage.TYPE_4BYTE_ABGR);
    ReferencedEnvelope envelope = new ReferencedEnvelope(0, 10, 0, 10, CRS.decode("EPSG:4326"));
    GridCoverage2D test = factory.create("test", bi, envelope);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    GeoTiffWriter writer = new GeoTiffWriter(bos);
    writer.write(test, null);
    writer.dispose();

    // create the lot of files
    byte[] bytes = bos.toByteArray();
    for (int i = 0; i < fileCount; i++) {
        String pad = "";
        if (i < 10) {
            pad = "000";
        } else if (i < 100) {
            pad = "00";
        } else if (i < 1000) {
            pad = "0";
        }
        File target = new File(mosaic, "tile_" + pad + i + ".tiff");
        FileUtils.writeByteArrayToFile(target, bytes);
    }

    // create the mosaic indexer property file
    Properties p = new Properties();
    p.put("ElevationAttribute", "elevation");
    p.put("Schema", "*the_geom:Polygon,location:String,elevation:Integer");
    p.put("PropertyCollectors", "IntegerFileNameExtractorSPI[elevationregex](elevation)");
    FileOutputStream fos = new FileOutputStream(new File(mosaic, "indexer.properties"));
    p.store(fos, null);
    fos.close();
    // and the regex itself
    p.clear();
    p.put("regex", "(?<=_)(\\d{4})");
    fos = new FileOutputStream(new File(mosaic, "elevationregex.properties"));
    p.store(fos, null);
    fos.close();
}

From source file:org.mrgeo.resources.tms.TileMapServiceResource.java

protected static Response createEmptyTile(final ImageResponseWriter writer, final int width, final int height) {
    // return an empty image
    final int dataType;
    if (writer.getResponseMimeType().equals("image/jpeg")) {
        dataType = BufferedImage.TYPE_3BYTE_BGR;
    } else {//from   ww  w .j av  a 2 s.  c om
        // dataType = BufferedImage.TYPE_INT_ARGB;
        dataType = BufferedImage.TYPE_4BYTE_ABGR;
    }

    final BufferedImage bufImg = new BufferedImage(width, height, dataType);
    final Graphics2D g = bufImg.createGraphics();
    g.setColor(new Color(0, 0, 0, 0));
    g.fillRect(0, 0, width, height);
    g.dispose();

    return writer.write(bufImg.getData()).build();
}

From source file:org.pentaho.reporting.engine.classic.core.modules.output.pageable.pdf.internal.PdfGraphics2D.java

private void setPaint(final boolean invert, final double xoffset, final double yoffset, final boolean fill) {
    if (paint instanceof Color) {
        final Color color = (Color) paint;
        final int alpha = color.getAlpha();
        if (fill) {
            if (alpha != currentFillGState) {
                currentFillGState = alpha;
                PdfGState gs = fillGState[alpha];
                if (gs == null) {
                    gs = new PdfGState();
                    gs.setFillOpacity(alpha / 255.00f);
                    fillGState[alpha] = gs;
                }/*w  w w  .  ja v a2  s.c  o m*/
                cb.setGState(gs);
            }
            cb.setColorFill(color);
        } else {
            if (alpha != currentStrokeGState) {
                currentStrokeGState = alpha;
                PdfGState gs = strokeGState[alpha];
                if (gs == null) {
                    gs = new PdfGState();
                    gs.setStrokeOpacity(alpha / 255.0f);
                    strokeGState[alpha] = gs;
                }
                cb.setGState(gs);
            }
            cb.setColorStroke(color);
        }
    } else if (paint instanceof GradientPaint) {
        final GradientPaint gp = (GradientPaint) paint;
        final Point2D p1 = gp.getPoint1();
        transform.transform(p1, p1);
        final Point2D p2 = gp.getPoint2();
        transform.transform(p2, p2);
        final Color c1 = gp.getColor1();
        final Color c2 = gp.getColor2();
        final PdfShading shading = PdfShading.simpleAxial(cb.getPdfWriter(), (float) p1.getX(),
                normalizeY((float) p1.getY()), (float) p2.getX(), normalizeY((float) p2.getY()), c1, c2);
        final PdfShadingPattern pat = new PdfShadingPattern(shading);
        if (fill) {
            cb.setShadingFill(pat);
        } else {
            cb.setShadingStroke(pat);
        }
    } else if (paint instanceof TexturePaint) {
        try {
            final TexturePaint tp = (TexturePaint) paint;
            final BufferedImage img = tp.getImage();
            final Rectangle2D rect = tp.getAnchorRect();
            final com.lowagie.text.Image image = com.lowagie.text.Image.getInstance(img, null);
            final PdfPatternPainter pattern = cb.createPattern(image.getWidth(), image.getHeight());
            final AffineTransform inverse = this.normalizeMatrix();
            inverse.translate(rect.getX(), rect.getY());
            inverse.scale(rect.getWidth() / image.getWidth(), -rect.getHeight() / image.getHeight());
            final double[] mx = new double[6];
            inverse.getMatrix(mx);
            pattern.setPatternMatrix((float) mx[0], (float) mx[1], (float) mx[2], (float) mx[3], (float) mx[4],
                    (float) mx[5]);
            image.setAbsolutePosition(0, 0);
            pattern.addImage(image);
            if (fill) {
                cb.setPatternFill(pattern);
            } else {
                cb.setPatternStroke(pattern);
            }

        } catch (Exception ex) {
            if (fill) {
                cb.setColorFill(Color.gray);
            } else {
                cb.setColorStroke(Color.gray);
            }
        }
    } else {
        try {
            int type = BufferedImage.TYPE_4BYTE_ABGR;
            if (paint.getTransparency() == Transparency.OPAQUE) {
                type = BufferedImage.TYPE_3BYTE_BGR;
            }
            final BufferedImage img = new BufferedImage((int) width, (int) height, type);
            final Graphics2D g = (Graphics2D) img.getGraphics();
            g.transform(transform);
            final AffineTransform inv = transform.createInverse();
            Shape fillRect = new Rectangle2D.Double(0, 0, img.getWidth(), img.getHeight());
            fillRect = inv.createTransformedShape(fillRect);
            g.setPaint(paint);
            g.fill(fillRect);
            if (invert) {
                final AffineTransform tx = new AffineTransform();
                tx.scale(1, -1);
                tx.translate(-xoffset, -yoffset);
                g.drawImage(img, tx, null);
            }
            g.dispose();
            // g = null;
            final com.lowagie.text.Image image = com.lowagie.text.Image.getInstance(img, null);
            final PdfPatternPainter pattern = cb.createPattern(width, height);
            image.setAbsolutePosition(0, 0);
            pattern.addImage(image);
            if (fill) {
                cb.setPatternFill(pattern);
            } else {
                cb.setPatternStroke(pattern);
            }
        } catch (Exception ex) {
            if (fill) {
                cb.setColorFill(Color.gray);
            } else {
                cb.setColorStroke(Color.gray);
            }
        }
    }
}

From source file:org.polymap.core.data.image.ImageGrayscaleProcessor.java

protected Image grayscale(Image image) {
    long start = System.currentTimeMillis();

    // load image data
    new javax.swing.ImageIcon(image).getImage();

    if (!(image instanceof BufferedImage)) {
        BufferedImage bimage = new BufferedImage(image.getHeight(null), image.getWidth(null),
                BufferedImage.TYPE_4BYTE_ABGR);
        Graphics g = bimage.getGraphics();
        g.drawImage(image, 0, 0, null);//from  w  w w .  j  av  a2  s.c o  m
        g.dispose();

        image = bimage;
    }

    // grayscale
    ColorConvertOp filter = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);

    BufferedImage grayImage = new BufferedImage(image.getHeight(null), image.getWidth(null),
            BufferedImage.TYPE_4BYTE_ABGR);

    Graphics g = grayImage.getGraphics();
    filter.filter((BufferedImage) image, grayImage);
    g.dispose();

    log.info("Gray scaling took: " + (System.currentTimeMillis() - start) + "ms");
    return grayImage;
}

From source file:org.polymap.core.data.image.RasterRenderProcessor.java

protected Image getMap(Set<ILayer> layers, int width, int height, ReferencedEnvelope bbox) {
    // mapContext
    synchronized (this) {
        // check style objects
        boolean needsNewContext = false;

        // create mapContext
        if (mapContext == null || needsNewContext) {
            // sort z-priority
            TreeMap<String, ILayer> sortedLayers = new TreeMap();
            for (ILayer layer : layers) {
                String uniqueOrderKey = String.valueOf(layer.getOrderKey()) + layer.id();
                sortedLayers.put(uniqueOrderKey, layer);
            }/* w  ww .jav a2 s .c  o m*/
            // add to mapContext
            mapContext = new DefaultMapContext(bbox.getCoordinateReferenceSystem());
            for (ILayer layer : sortedLayers.values()) {
                try {
                    IGeoResource res = layer.getGeoResource();
                    if (res == null) {
                        throw new IllegalStateException("Unable to find geo resource of layer: " + layer);
                    }
                    AbstractRasterService service = (AbstractRasterService) res.service(null);
                    log.debug("    service: " + service);

                    log.debug("    CRS: " + layer.getCRS());
                    AbstractGridCoverage2DReader reader = service.getReader(layer.getCRS(), null);

                    Style style = createRGBStyle(reader);
                    if (style == null) {
                        log.warn("Error creating RGB style, trying greyscale...");
                        style = createGreyscaleStyle(1);
                    }
                    mapContext.addLayer(reader, style);
                    styles.put(layer, style);
                } catch (IOException e) {
                    log.warn(e);
                    // FIXME set layer status and statusMessage
                }
            }
        } else {
        }
    }

    // render
    BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);
    final Graphics2D g = result.createGraphics();
    try {
        StreamingRenderer renderer = new StreamingRenderer();

        // error handler
        renderer.addRenderListener(new RenderListener() {
            public void featureRenderer(SimpleFeature feature) {
            }

            public void errorOccurred(Exception e) {
                log.error("Renderer error: ", e);
                drawErrorMsg(g, "Fehler bei der Darstellung.", e);
            }
        });

        // rendering hints
        RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING,
                RenderingHints.VALUE_RENDER_QUALITY);
        hints.add(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON));
        hints.add(new RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING,
                RenderingHints.VALUE_TEXT_ANTIALIAS_ON));

        renderer.setJava2DHints(hints);
        //            g.setRenderingHints( hints );

        // render params
        Map rendererParams = new HashMap();
        rendererParams.put("optimizedDataLoadingEnabled", Boolean.TRUE);
        renderer.setRendererHints(rendererParams);

        renderer.setContext(mapContext);
        Rectangle paintArea = new Rectangle(width, height);
        renderer.paint(g, paintArea, bbox);
        return result;
    } catch (Throwable e) {
        log.error("Renderer error: ", e);
        drawErrorMsg(g, null, e);
        return result;
    } finally {
        if (g != null) {
            g.dispose();
        }
    }
}

From source file:org.sejda.sambox.pdmodel.graphics.image.JPEGFactoryTest.java

@Test
public void testCreateFromImage4BYTE_ABGR() throws IOException {
    // workaround Open JDK bug
    // http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7044758
    if (System.getProperty("java.runtime.name").equals("OpenJDK Runtime Environment")
            && (System.getProperty("java.specification.version").equals("1.6")
                    || System.getProperty("java.specification.version").equals("1.7")
                    || System.getProperty("java.specification.version").equals("1.8"))) {
        return;//  www.j ava  2  s. co  m
    }

    PDDocument document = new PDDocument();
    BufferedImage image = ImageIO.read(JPEGFactoryTest.class.getResourceAsStream("jpeg.jpg"));

    // create an ARGB image
    int width = image.getWidth();
    int height = image.getHeight();
    BufferedImage argbImage = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);
    Graphics ag = argbImage.getGraphics();
    ag.drawImage(image, 0, 0, null);
    ag.dispose();

    for (int x = 0; x < argbImage.getWidth(); ++x) {
        for (int y = 0; y < argbImage.getHeight(); ++y) {
            argbImage.setRGB(x, y, (argbImage.getRGB(x, y) & 0xFFFFFF) | ((y / 10 * 10) << 24));
        }
    }

    PDImageXObject ximage = JPEGFactory.createFromImage(argbImage);
    validate(ximage, 8, width, height, "jpg", PDDeviceRGB.INSTANCE.getName());
    assertNotNull(ximage.getSoftMask());
    validate(ximage.getSoftMask(), 8, width, height, "jpg", PDDeviceGray.INSTANCE.getName());
    assertTrue(colorCount(ximage.getSoftMask().getImage()) > image.getHeight() / 10);

    doWritePDF(document, ximage, testResultsDir, "jpeg-4bargb.pdf");
}