小编Fab*_*mer的帖子

在unix c中逐字节比较两张图片

我写了这个方法来比较两个文件,特别是图片,并在输出中打印哪里是差异和它是什么.此时此结果是每个字节与另一个字节不同,但我正在比较的图像是相同的.你能帮我吗?这是代码:

void compareFiles(char* path1, char* path2){
    FILE* img1;
    FILE* img2;

    if((img1 = fopen(path1,"r")) == NULL || (img2 = fopen(path2,"r")) == NULL){
        printf("ERROR fopen()\n");
        exit(-1);
    }

    int i=0;
    char buffer1,buffer2;

    int c;
    while ((c=fgetc(img1)) != EOF){
        fread(&buffer1, 1,1, img1);
        fread(&buffer2, 1,1, img2);
        if(buffer1 != buffer2){
            printf("Byte differs\n IMG1: %s, IMG2: %s; Position %d\n",&buffer1,&buffer2,i);
            i++;
        }
    }

    fclose(img1);
    fclose(img2);
}
Run Code Online (Sandbox Code Playgroud)

c unix compare image file

1
推荐指数
1
解决办法
160
查看次数

标签 统计

c ×1

compare ×1

file ×1

image ×1

unix ×1