黑色填充与java中的图像?

时间:2013-06-04 19:22:58

标签: java bufferedimage graphics2d

我有这个问题。我正在使用此代码来旋转图像,但旋转的图像由于旋转而在其角落中具有黑色填充。 我怎么能把它删除?

public static BufferedImage rotate(BufferedImage img, int angle) {
        rotate_checked = false;
        int w = img.getWidth();
        int h = img.getHeight();
        BufferedImage dimg =new BufferedImage(w, h,  BufferedImage.TYPE_BYTE_GRAY);
        Graphics2D g = dimg.createGraphics();
        g.rotate(Math.toRadians(angle), w/2, h/2);
        g.drawImage(img, null, 0, 0);
       return dimg;
} 

1 个答案:

答案 0 :(得分:0)

您需要创建透明图像:

BufferedImage buffer = gc.createCompatibleImage(height,width,Transparency.TRANSLUCENT);

其中'gc'是Graphics2D对象。您也可以使用新的BufferedImage()直接创建一个,但这将为您的特定图形上下文提供最有效的图像。