1

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

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;
} 
4

1 回答 1

0

您需要创建一个透明图像:

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

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

于 2013-06-04T20:48:59.813 回答