List of usage examples for java.awt.image BufferedImage TYPE_4BYTE_ABGR
int TYPE_4BYTE_ABGR
To view the source code for java.awt.image BufferedImage TYPE_4BYTE_ABGR.
Click Source Link
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"); }