java - java中用图像填充黑色?

标签 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;
} 

最佳答案

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

BufferedImage buffer = gc.createCompatibleImage(高度, 宽度, Transparency.TRANSLUCENT);

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

关于java - java中用图像填充黑色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16925848/

相关文章:

java - 使用 REST 上传多个文件

java - 在类里面找不到卡片图像的 setter /字段

java - 如何更改#000000格式的BufferedImage的颜色?

java - 如何快速将 BufferedImage 转换为 byte[]?

java - 更改图像 RGB 值的 lsb 值给出不一致的值

android - 使用 OpenGL ES2.0 的纹理渲染质量下降

Java - 将字符或字符串转换为形状/区域

在彼此之上绘制像素的算法(带 alpha)

java - Tiled Editor 贴图优化

java - 为什么表达式 -3 >> 1 结果为 -2?