List of usage examples for java.awt Graphics2D setComposite
public abstract void setComposite(Composite comp);
From source file:at.gv.egiz.pdfas.common.utils.ImageUtils.java
public static BufferedImage removeAlphaChannel(BufferedImage src) { //if (src.getColorModel().hasAlpha()) { BufferedImage image = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g = image.createGraphics(); g.setComposite(AlphaComposite.Src); g.drawImage(src, 0, 0, null);/*from w ww. j a va 2 s . c o m*/ g.dispose(); return image; //} //return src; /* * BufferedImage rgbImage = new BufferedImage(src.getWidth(), * src.getHeight(), BufferedImage.TYPE_3BYTE_BGR); for (int x = 0; x < * src.getWidth(); ++x) { for (int y = 0; y < src.getHeight(); ++y) { * rgbImage.setRGB(x, y, src.getRGB(x, y) & 0xFFFFFF); } } return * rgbImage; */ }
From source file:Main.java
/** * Clears the given area of the specified graphics object with the given * color or makes the region transparent. */// w w w . j a v a2 s. co m public static void clearRect(Graphics2D g, Rectangle rect, Color background) { if (background != null) { g.setColor(background); g.fillRect(rect.x, rect.y, rect.width, rect.height); } else { g.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f)); g.fillRect(rect.x, rect.y, rect.width, rect.height); g.setComposite(AlphaComposite.SrcOver); } }
From source file:su.fmi.photoshareclient.remote.ImageHandler.java
public static BufferedImage createResizedCopy(Image originalImage, int scaledWidth, int scaledHeight, boolean preserveAlpha) { int imageType = preserveAlpha ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB; BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, imageType); Graphics2D g = scaledBI.createGraphics(); if (preserveAlpha) { g.setComposite(AlphaComposite.Src); }//w w w . j av a2 s . c o m g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); g.dispose(); return scaledBI; }
From source file:kz.supershiny.core.services.ImageService.java
/** * Creates thumb for image./*from w ww.j a v a 2s. c om*/ * * @param originalData original image in byte array * @param type original - 0, large - 1, small - 2 * @return resized image in byte array */ public static byte[] resizeImage(byte[] originalData, ImageSize type) { //if original flag, then return original if (type.equals(ImageSize.ORIGINAL)) { return originalData; } BufferedImage originalImage = null; BufferedImage resizedImage = null; byte[] result = null; //convert bytes to BufferedImage try (InputStream in = new ByteArrayInputStream(originalData)) { originalImage = ImageIO.read(in); } catch (IOException ex) { LOG.error("Cannot convert byte array to BufferedImage!", ex); return null; } //get original size int scaledHeight = originalImage.getHeight(); int scaledWidth = originalImage.getWidth(); switch (type) { case LARGE: scaledWidth = LARGE_WIDTH; scaledHeight = LARGE_HEIGHT; break; case SMALL: scaledWidth = SMALL_WIDTH; scaledHeight = SMALL_HEIGHT; break; default: break; } //calculate aspect ratio float ratio = 1.0F * originalImage.getWidth() / originalImage.getHeight(); if (ratio > 1.0F) { scaledHeight = (int) (scaledHeight / ratio); } else { scaledWidth = (int) (scaledWidth * ratio); } //resize with hints resizedImage = new BufferedImage(scaledWidth, scaledHeight, originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : originalImage.getType()); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); g.dispose(); g.setComposite(AlphaComposite.Src); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //convert BufferedImage to bytes try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) { ImageIO.write(resizedImage, "png", baos); baos.flush(); result = baos.toByteArray(); } catch (IOException ex) { LOG.error("Cannot convert BufferedImage to byte array!", ex); } return result; }
From source file:se.dibbler.backend.generics.DibblerImageUtil.java
private static Response<BufferedImage> resizeWithHint(BufferedImage originalImage, int type, int height, int width) { try {/*from w w w .ja va 2 s . com*/ BufferedImage resizedImage = new BufferedImage(width, height, type); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, width, height, null); g.dispose(); g.setComposite(AlphaComposite.Src); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); return Response.success(resizedImage); } catch (Exception e) { LOG.error("[ ERROR when resizing file ] [ MESSAGE : {}]", e.getMessage()); return Response.error(GenericError.FILE_HANDLING); } }
From source file:org.elasticwarehouse.core.parsers.FileTools.java
private static BufferedImage resizeImageWithHint(BufferedImage originalImage, int type, int IMG_WIDTH, int IMG_HEIGHT) { BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null); g.dispose();//w w w .java 2 s . c o m g.setComposite(AlphaComposite.Src); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); return resizedImage; }
From source file:com.jaeksoft.searchlib.util.ImageUtils.java
public static final void yellowHighlight(Image image, Collection<Rectangle> boxes, float outsetFactor) { if (CollectionUtils.isEmpty(boxes)) return;// w ww .j a v a 2s. c om Graphics2D g2d = (Graphics2D) image.getGraphics(); g2d.setPaint(Color.YELLOW); Composite originalComposite = g2d.getComposite(); AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f); g2d.setComposite(ac); for (Rectangle box : boxes) { if (outsetFactor != 1.0F) { box = new Rectangle(box); box.grow((int) (box.getHeight() * outsetFactor), (int) (box.getWidth() * outsetFactor)); } g2d.fill(box); } g2d.setComposite(originalComposite); }
From source file:nl.b3p.kaartenbalie.service.KBImageTool.java
/** Combines GIF, TIFF or PNG images. Combining these images is different from the JPG image types since these * has to use an other imageType: BufferedImage.TYPE_INT_ARGB_PRE. * * @param images BufferedImage array with the images tha have to be combined. * * @return BufferedImage/*from www . j av a 2 s . c o m*/ */ // <editor-fold defaultstate="" desc="combineOtherImages(BufferedImage [] images) method."> private static BufferedImage combineOtherImages(BufferedImage[] images) { int width = images[0].getWidth(); int height = images[0].getHeight(); BufferedImage newBufIm = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB_PRE); Graphics2D gbi = newBufIm.createGraphics(); gbi.drawImage(images[0], 0, 0, null); gbi.setComposite(AlphaComposite.getInstance(AlphaComposite.DST_OVER, 1.0f)); for (int i = 1; i < images.length; i++) { gbi.drawImage(images[i], 0, 0, null); } return newBufIm; }
From source file:ch.rasc.downloadchart.DownloadChartServlet.java
private static void writeImage(HttpServletResponse response, byte[] imageData, Integer width, Integer height, String formatName) throws IOException { BufferedImage originalImage = ImageIO.read(new ByteArrayInputStream(imageData)); Dimension newDimension = calculateDimension(originalImage, width, height); if (newDimension != null) { int type = originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : originalImage.getType(); BufferedImage resizedImage = new BufferedImage(newDimension.width, newDimension.height, type); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, newDimension.width, newDimension.height, null); g.dispose();//from w ww .j a v a 2 s .c o m g.setComposite(AlphaComposite.Src); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); ImageIO.write(resizedImage, formatName, response.getOutputStream()); } else { if ("png".equals(formatName)) { response.getOutputStream().write(imageData); } else { ImageIO.write(originalImage, "gif", response.getOutputStream()); } } }
From source file:com.github.lucapino.sheetmaker.PreviewJFrame.java
public static BufferedImage makeRoundedCorner(BufferedImage image, int cornerRadius) { int w = image.getWidth(); int h = image.getHeight(); BufferedImage output = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = output.createGraphics(); // This is what we want, but it only does hard-clipping, i.e. aliasing // g2.setClip(new RoundRectangle2D ...) // so instead fake soft-clipping by first drawing the desired clip shape // in fully opaque white with antialiasing enabled... g2.setComposite(AlphaComposite.Src); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setColor(Color.WHITE);/* w ww. java2s . c o m*/ g2.fill(new RoundRectangle2D.Float(0, 0, w, h, cornerRadius, cornerRadius)); // ... then compositing the image on top, // using the white shape from above as alpha source g2.setComposite(AlphaComposite.SrcIn); g2.drawImage(image, 0, 0, null); g2.dispose(); return output; }