-1

我想制作示例 WinForm C# 应用程序,用于在我的笔记本电脑上搜索重复的照片。
我的问题是是否有一些记录、标签、Exif 数据或其他任何 JPG(照片)文件独有的内容。
所以我可以读取放入数据集中的数据并寻找重复项。

4

5 回答 5

2

我们可以说 Exif 数据是独一无二的。此表为您提供了从 Exif 数据中获取内容的良好简历: http ://en.wikipedia.org/wiki/Exchangeable_image_file_format#Example

看看这个项目,肯定代码会帮助你:

http://jpegdata.codeplex.com/

在这个stackoveflow question中,有一个很好的答案来获取 Exif 数据:

“如果您正在针对框架的 v3(或更高版本)进行编译,那么您可以使用 BitmapSource 类加载图像,该类通过 Metadata 属性公开 EXIF 元数据”

不过,我会比较名称和日期,它必须足够。

于 2010-10-21T11:02:29.303 回答
2

为什么不使用文件的校验和?为您扫描的所有文件创建一个哈希表,以校验和为键

于 2010-10-21T11:13:34.783 回答
1

我只是比较属性,如果它们都匹配,然后散列内容并进行比较。

于 2010-10-21T11:00:20.253 回答
1

您可以逐字节读取图片并进行比较。如果他们不匹配停止阅读。

像这样的东西。这很模糊,但你会明白的。

while (match && !end)
{
    b1 = getnexctbytefromfilefirstfile();
    b2 = getnextbytefromfilesecondfile();

    if(b1 != b2)
    {
        match = false;
    }

    if(b1 == null || b2 == null)
    {
        end = true;
    }
}
于 2010-10-21T11:07:19.943 回答
1

如果你想走散列路线,看看这个问题

于 2010-10-21T11:23:35.697 回答