有个需求,需要Job定时将需要质检SKU 图片数据上传到单独的ftp 服务器 ,数量太多 不能每次进行覆盖处理 。则这里进行已经上传 图片和SKU先有图片进行对比,不重复则上传

/**
 * 对比两个图片的像素点
 */
public class ImageComparison {

    public static boolean contrastPixels(InputStream stream, InputStream stream1) {
        try {
            BufferedImage image1 = ImageIO.read(stream);
            BufferedImage image2 = ImageIO.read(stream1);

            int[][] pixels1 = new int[image1.getWidth()][image1.getHeight()];
            for (int y = 0; y < image1.getHeight(); y++) {
                for (int x = 0; x < image1.getWidth(); x++) {
                    pixels1[x][y] = image1.getRGB(x, y);
                }
            }

            int[][] pixels2 = new int[image2.getWidth()][image2.getHeight()];
            for (int y = 0; y < image2.getHeight(); y++) {
                for (int x = 0; x < image2.getWidth(); x++) {
                    pixels2[x][y] = image2.getRGB(x, y);
                }
            }

            for (int y = 0; y < Math.max(image1.getHeight(), image2.getHeight()); y++) {
                for (int x = 0; x < Math.max(image1.getWidth(), image2.getWidth()); x++) {
                    if (pixels1[x][y] != pixels2[x][y]) {
                        XxlJobLogger.log("Pixels at (" + x + ", " + y + ") differ.");
                        return false;
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        XxlJobLogger.log("Pixels at (\" + x + \", \" + y + \") save.");
        return true;
    }
}