该类BufferedImage
提供了两种getRGB()
方法变体:
第一个,int getRGB(int x, int y)
它将返回一个像素,如返回类型所说。
第二个:
int[] getRGB(int startX, int startY, int w, int h,
int[] rgbArray, int offset, int scansize)
它返回默认 RGB 颜色模型中的整数像素数组。但是,如果您传递rgbArray
的是null
这个函数,它将在其中创建一个新函数rgbArray
并返回它:
public int[] getRGB(int startX, int startY, int w, int h,
int[] rgbArray, int offset, int scansize) {
// other code
if (rgbArray == null) {
rgbArray = new int[offset+h*scansize];
}
// other code
return rgbArray;
}
但是同样,您必须在使用它之前将返回的数组分配给pixels
它。在函数内部创建的数组getRGB
无法更改传递给此函数之前的pixels
数组引用。null
考虑getPixel(x, y)
在第二个上使用函数,因为与第二个不同, getPixel(x, y)
它不会丢弃 Java2D 所做的优化。讨论它超出了这个问题的范围。
参考:
- BufferedImage.getRGB