List of usage examples for java.awt Graphics2D setComposite
public abstract void setComposite(Composite comp);
From source file:com.celements.photo.image.GenerateThumbnail.java
private void drawString(String copyright, int width, int height, int bottomSpace, int rightSpace, int vSpacing, int hSpacing, FontMetrics metrics, Graphics2D g2d) { AlphaComposite transprency;//from w w w. ja v a2 s . c o m g2d.setColor(new Color(255, 255, 255)); transprency = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.66f); g2d.setComposite(transprency); //Attention: drawString's [x, y] coordinates are the baseline, not upper or lower corner. g2d.drawString(copyright, width - metrics.stringWidth(copyright) - hSpacing - rightSpace, height - metrics.getDescent() - vSpacing - bottomSpace); }
From source file:edu.ku.brc.ui.dnd.SimpleGlassPane.java
@Override protected void paintComponent(Graphics graphics) { Graphics2D g = (Graphics2D) graphics; Rectangle rect = getInternalBounds(); int width = rect.width; int height = rect.height; if (useBGImage) { // Create a translucent intermediate image in which we can perform // the soft clipping GraphicsConfiguration gc = g.getDeviceConfiguration(); if (img == null || img.getWidth() != width || img.getHeight() != height) { img = gc.createCompatibleImage(width, height, Transparency.TRANSLUCENT); }/*from w w w. ja va 2 s . com*/ Graphics2D g2 = img.createGraphics(); // Clear the image so all pixels have zero alpha g2.setComposite(AlphaComposite.Clear); g2.fillRect(0, 0, width, height); g2.setComposite(AlphaComposite.Src); g2.setColor(new Color(0, 0, 0, 85)); g2.fillRect(0, 0, width, height); if (delegateRenderer != null) { delegateRenderer.render(g, g2, img); } g2.dispose(); // Copy our intermediate image to the screen g.drawImage(img, rect.x, rect.y, null); } super.paintComponent(graphics); if (StringUtils.isNotEmpty(text)) { Graphics2D g2 = (Graphics2D) graphics; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setColor(fillColor); g2.fillRect(margin.left, margin.top, rect.width, rect.height); g2.setFont(new Font((new JLabel()).getFont().getName(), Font.BOLD, pointSize)); FontMetrics fm = g2.getFontMetrics(); int tw = fm.stringWidth(text); int th = fm.getHeight(); int tx = (rect.width - tw) / 2; int ty = (rect.height - th) / 2; if (yPos != null) { ty = yPos; } int expand = 20; int arc = expand * 2; g2.setColor(new Color(0, 0, 0, 50)); int x = margin.left + tx - (expand / 2); int y = margin.top + ty - fm.getAscent() - (expand / 2); drawBGContainer(g2, true, x + 4, y + 6, tw + expand, th + expand, arc, arc); g2.setColor(new Color(255, 255, 255, 220)); drawBGContainer(g2, true, x, y, tw + expand, th + expand, arc, arc); g2.setColor(Color.DARK_GRAY); drawBGContainer(g2, false, x, y, tw + expand, th + expand, arc, arc); g2.setColor(textColor == null ? Color.BLACK : textColor); g2.drawString(text, tx, ty); } }
From source file:Composite.java
public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; Dimension d = getSize();/*from w ww . ja va 2s . c om*/ int w = d.width; int h = d.height; // Creates the buffered image. BufferedImage buffImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); Graphics2D gbi = buffImg.createGraphics(); // Clears the previously drawn image. g2.setColor(Color.white); g2.fillRect(0, 0, d.width, d.height); int rectx = w / 4; int recty = h / 4; // Draws the rectangle and ellipse into the buffered image. gbi.setColor(new Color(0.0f, 0.0f, 1.0f, 1.0f)); gbi.fill(new Rectangle2D.Double(rectx, recty, 150, 100)); gbi.setColor(new Color(1.0f, 0.0f, 0.0f, 1.0f)); gbi.setComposite(ac); gbi.fill(new Ellipse2D.Double(rectx + rectx / 2, recty + recty / 2, 150, 100)); // Draws the buffered image. g2.drawImage(buffImg, null, 0, 0); }
From source file:com.pronoiahealth.olhie.server.services.BookCoverImageService.java
/** * Resize an image//from www. jav a2s . c om * * @param originalImage * @param width * @param height * @param type * @return */ private BufferedImage resize(BufferedImage originalImage, int width, int height, int type) { BufferedImage resizedImage = new BufferedImage(width, height, type); Graphics2D g = resizedImage.createGraphics(); try { 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); g.drawImage(originalImage, 0, 0, width, height, null); } finally { if (g != null) { g.dispose(); } } return resizedImage; }
From source file:TextRendering.java
public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Dimension d = getSize();//from w ww . j a va 2 s . c o m AffineTransform ct = AffineTransform.getTranslateInstance(d.width / 2, d.height * 3 / 4); g2.transform(ct); String s = "www.java2s.com"; Font f = new Font("Serif", Font.PLAIN, 128); g2.setFont(f); int count = 6; for (int i = 1; i <= count; i++) { AffineTransform oldTransform = g2.getTransform(); float ratio = (float) i / (float) count; g2.transform(AffineTransform.getRotateInstance(Math.PI * (ratio - 1.0f))); float alpha = ((i == count) ? 1.0f : ratio / 3); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); g2.drawString(s, 0, 0); g2.setTransform(oldTransform); } }
From source file:painting.IconDisplayer.java
protected void paintComponent(Graphics g) { if (isOpaque()) { //paint background g.setColor(getBackground());/*from w ww .ja v a 2s.c o m*/ g.fillRect(0, 0, getWidth(), getHeight()); } if (icon != null) { //Draw the icon over and over, right aligned. Insets insets = getInsets(); int iconWidth = icon.getIconWidth(); int iconX = getWidth() - insets.right - iconWidth; int iconY = insets.top; boolean faded = false; //Copy the Graphics object, which is actually //a Graphics2D object. Cast it so we can //set alpha composite. Graphics2D g2d = (Graphics2D) g.create(); //Draw the icons, starting from the right. //After the first one, the rest are faded. //We won't bother painting icons that are clipped. g.getClipBounds(clipRect); while (iconX >= insets.left) { iconRect.setBounds(iconX, iconY, iconWidth, icon.getIconHeight()); if (iconRect.intersects(clipRect)) { icon.paintIcon(this, g2d, iconX, iconY); } iconX -= (iconWidth + pad); if (!faded) { g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f)); faded = true; } } g2d.dispose(); //clean up } }
From source file:org.apache.fop.afp.AFPGraphics2D.java
/** * Draws an AWT image into a BufferedImage using an AWT Graphics2D implementation * * @param img the AWT image//from w w w . j ava 2s. co m * @param bufferedImage the AWT buffered image * @param width the image width * @param height the image height * @param observer the image observer * @return true if the image was drawn */ private boolean drawBufferedImage(Image img, BufferedImage bufferedImage, int width, int height, ImageObserver observer) { java.awt.Graphics2D g2d = bufferedImage.createGraphics(); try { g2d.setComposite(AlphaComposite.SrcOver); Color color = new Color(1, 1, 1, 0); g2d.setBackground(color); g2d.setPaint(color); g2d.fillRect(0, 0, width, height); int imageWidth = bufferedImage.getWidth(); int imageHeight = bufferedImage.getHeight(); Rectangle clipRect = new Rectangle(0, 0, imageWidth, imageHeight); g2d.clip(clipRect); g2d.setComposite(gc.getComposite()); return g2d.drawImage(img, 0, 0, imageWidth, imageHeight, observer); } finally { g2d.dispose(); //drawn so dispose immediately to free system resource } }
From source file:IconDisplayer.java
protected void paintComponent(Graphics g) { if (isOpaque()) { //paint background g.setColor(getBackground());/*from w w w. ja va2s .co m*/ g.fillRect(0, 0, getWidth(), getHeight()); } if (icon != null) { //Draw the icon over and over, right aligned. Insets insets = getInsets(); int iconWidth = icon.getIconWidth(); int iconX = getWidth() - insets.right - iconWidth; int iconY = insets.top; boolean faded = false; //Copy the Graphics object, which is actually //a Graphics2D object. Cast it so we can //set alpha composite. Graphics2D g2d = (Graphics2D) g.create(); //Draw the icons, starting from the right. //After the first one, the rest are faded. //We won't bother painting icons that are clipped. g.getClipBounds(clipRect); while (iconX >= insets.left) { iconRect.setBounds(iconX, iconY, iconWidth, icon.getIconHeight()); if (iconRect.intersects(clipRect)) { icon.paintIcon(this, g2d, iconX, iconY); } iconX -= (iconWidth + pad); if (!faded) { g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f)); faded = true; } } g2d.dispose(); //clean up } }
From source file:org.jahia.services.image.AbstractJava2DImageService.java
public boolean rotateImage(Image image, File outputFile, boolean clockwise) throws IOException { BufferedImage originalImage = ((BufferImage) image).getOriginalImage(); BufferedImage dest = getDestImage(originalImage.getHeight(), originalImage.getWidth(), originalImage); // Paint source image into the destination, scaling as needed Graphics2D graphics2D = getGraphics2D(dest, OperationType.ROTATE); double angle = Math.toRadians(clockwise ? 90 : -90); double sin = Math.abs(Math.sin(angle)), cos = Math.abs(Math.cos(angle)); int w = originalImage.getWidth(), h = originalImage.getHeight(); int neww = (int) Math.floor(w * cos + h * sin), newh = (int) Math.floor(h * cos + w * sin); graphics2D.translate((neww - w) / 2, (newh - h) / 2); graphics2D.rotate(angle, w / (double) 2, h / (double) 2); graphics2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC)); if (originalImage.getColorModel() instanceof IndexColorModel) { graphics2D.drawImage(originalImage, 0, 0, graphics2D.getBackground(), null); } else {/*from www . j a v a 2s. c o m*/ graphics2D.drawImage(originalImage, 0, 0, null); } // Save destination image saveImageToFile(dest, ((BufferImage) image).getMimeType(), outputFile); return true; }
From source file:com.celements.photo.image.GenerateThumbnail.java
private void drawWatermark(String watermark, Graphics2D g2d, int width, int height) { //TODO implement 'secure' watermark (i.e. check if this algorithm secure or can it be easily reversed?) g2d.setColor(new Color(255, 255, 150)); AlphaComposite transprency = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.45f); g2d.setComposite(transprency); FontMetrics metrics = calcWatermarkFontSize(watermark, width, g2d); g2d.setFont(calcWatermarkFontSize(watermark, width, g2d).getFont()); // rotate around image center double angle = (Math.sin(height / (double) width)); g2d.rotate(-angle, width / 2.0, height / 2.0); g2d.drawString(watermark, (width - metrics.stringWidth(watermark)) / 2, ((height - metrics.getHeight()) / 2) + metrics.getAscent()); // undo rotation for correct copyright positioning g2d.rotate(angle, width / 2.0, height / 2.0); }