public BufferedImage createShadowImage() { BufferedImage image = new BufferedImage( source.getWidth() + shadowSize * 2, source.getHeight() + shadowSize * 2, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics(); g2.translate(shadowSize, shadowSize); source.paint(g2); shadowImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB); getBlurOp(shadowSize).filter(createShadowMask(image), shadowImage); Debug.info("[Shadow] shadowImage: " + shadowImage); Debug.info("[Shadow] bounds: " + getBounds()); return shadowImage; }