该类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