#include <stdio.h>
#include <math.h>
#include <gd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
gdImagePtr img1,img2;
int x,y,c1,c2;
long sum,s,area;
FILE *fp;
if (argc<2) {
printf("Syntax: compare_images <image1.jpg> <image2.jpg>\n");
exit(1);
}
fp = fopen(argv[1], "rb");
img1=gdImageCreateFromJpeg(fp);
fclose(fp);
fp = fopen(argv[2], "rb");
img2=gdImageCreateFromJpeg(fp);
fclose(fp);
sum=0;
area=img1->sx * img1->sy;
for (x=0;x<=img1->sx;x++) {
for (y=0;y<=img1->sy;y++) {
c1=gdImageGetPixel(img1,x,y);
c2=gdImageGetPixel(img2,x,y);
s=abs(gdTrueColorGetRed(c1)-gdTrueColorGetRed(c2));
s+=abs(gdTrueColorGetGreen(c1)-gdTrueColorGetGreen(c2));
s+=abs(gdTrueColorGetBlue(c1)-gdTrueColorGetBlue(c2));
sum+=s/3;
}
}
gdImageDestroy(img1);
gdImageDestroy(img2);
printf("%d\n",sum/area);
return 0;
}