我有一个BufferedImage,并希望将所有完全透明的像素设置为完全透明的白色(而不是透明的空白,或者源文件中可能存在的任何内容)。我当然可以使用getRGB和setRGB遍历整个图像,但还有其他一些方法可以更快吗?
答案 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
课程。
我个人没有使用它,但它可能就是你要找的东西。