这是您的解决方案:禁止getRGB并使用Raster(比getRGB更快,更容易)或更好的DataBuffer(最快,但必须处理编码):
import java.awt.image.BufferedImage;public class Main{public static void main(String[] args) { BufferedImage right = new BufferedImage(100, 100, BufferedImage.TYPE_BYTE_GRAY); int correct = 0, error = 0; for (int x=0 ; x < right.getWidth(); x++) for (int j = 0; j < right.getHeight(); j++) { int average = (int) (Math.random() * 255) ; right.getRaster().setSample(x, y, 0, average) ; if ( average != right.getRaster().getSample(x, y, 0) ) error++ ; else correct++; } System.out.println(correct + ", " + error); }}在您的情况下,getRGB太糟糕了,因为编码是一个字节数组(8位),并且您必须使用getRGB操纵RGB值。栅格将为您完成所有转换工作。



