Java examples for 2D Graphics:BufferedImage Create
create BufferedImage Drop Shadow
/*/*from w w w. j av a2s .c om*/ * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ //package com.java2s; import java.awt.*; import java.awt.image.*; public class Main { public static BufferedImage createDropShadow(BufferedImage image, int size, float opacity) { int width = image.getWidth() + size * 2; int height = image.getHeight() + size * 2; BufferedImage mask = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = mask.createGraphics(); g2.drawImage(image, size, size, null); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_IN, opacity)); g2.setColor(Color.BLACK); g2.fillRect(0, 0, width, height); g2.dispose(); BufferedImage shadow = createBlurOp(size).filter(mask, null); g2 = shadow.createGraphics(); g2.dispose(); return shadow; } private static ConvolveOp createBlurOp(int size) { float[] data = new float[size * size]; float value = 1f / (float) (size * size); for (int i = 0; i < data.length; i++) { data[i] = value; } return new ConvolveOp(new Kernel(size, size, data), ConvolveOp.EDGE_NO_OP, null); } }