static long rawBufferedImageDistance_sameSize(BufferedImage img1, BufferedImage img2, long stoppingValue default Int.MAX_VALUE) { int w = img1.getWidth(), h = img1.getHeight(); assertSameSize(img1, img2); var gp1 = grabbableIntPixels_fastOrSlow(img1); var gp2 = grabbableIntPixels_fastOrSlow(img2); int iPixels1 = gp1.offset, iPixels2 = gp2.offset; int[] pixels1 = gp1.data, pixels2 = gp2.data; long sum = 0; for y to h: { for x to w: { sum += rawRGBDiff( pixels1[iPixels1+x], pixels2[iPixels2+x]); if (sum > stoppingValue) ret stoppingValue+1; } iPixels1 += gp1.scanlineStride; iPixels2 += gp2.scanlineStride; } }