BufferedImage:将所有像素设置为白色,其中alpha = 0

时间:2012-07-18 18:01:20

标签: java bufferedimage

我有一个BufferedImage,并希望将所有完全透明的像素设置为完全透明的白色(而不是透明的空白,或者源文件中可能存在的任何内容)。我当然可以使用getRGB和setRGB遍历整个图像,但还有其他一些方法可以更快吗?

2 个答案:

答案 0 :(得分:3)

您可以像这样设置像素:

public void setRGB(int startX,
               int startY,
               int w,
               int h,
               int[] rgbArray,
               int offset,
               int scansize)

此方法将默认RGB颜色模型(TYPE_INT_ARGB)和默认sRGB颜色空间中的整数像素数组设置为图像数据的一部分。如果默认模型与图像ColorModel不匹配,则会进行颜色转换。使用此方法时,返回数据中的每个颜色分量只有8位精度。使用此图像中的指定坐标(x,y),可以通过以下方式访问ARGB像素:

 pixel   = rgbArray[offset + (y-startY)*scansize + (x-startX)];

答案 1 :(得分:1)

我不能确定它是否更快,但请查看ColorConvertOp课程。

我个人没有使用它,但它可能就是你要找的东西。

相关问题