我有一个 BufferedImage 并且想将所有完全透明的像素设置为完全透明的白色(而不是透明的空白,或者源文件中可能存在的任何内容)。我当然可以使用 getRGB 和 setRGB 循环遍历整个图像,但是还有其他更快的方法吗?
问问题
798 次
2 回答
3
You can set the pixels like this:
public void setRGB(int startX,
int startY,
int w,
int h,
int[] rgbArray,
int offset,
int scansize)
This method sets an array of integer pixels in the default RGB color model (TYPE_INT_ARGB) and default sRGB color space, into a portion of the image data. Color conversion takes place if the default model does not match the image ColorModel. There are only 8-bits of precision for each color component in the returned data when using this method. With a specified coordinate (x, y) in the this image, the ARGB pixel can be accessed in this way:
pixel = rgbArray[offset + (y-startY)*scansize + (x-startX)];
于 2012-08-23T18:56:40.563 回答
1
我不能确定它是否更快,但请看一下ColorConvertOp
课程。
我没有亲自使用它,但它可能是你正在寻找的。
于 2012-07-18T19:45:34.500 回答