当我得到用户用相机拍摄的新图像并保存其校验和时,当用户稍后从相机胶卷重新加载相同的图像时,校验和是不同的。会不会是因为相机胶卷里保存的图片是JPG格式的,有损,所以像素不一样?我正在尝试使用校验和来检测它是否是相同的图像:知道如何克服这种情况吗?我是否需要自己将其保存为 JPG,然后将其读入内存,以便获得与稍后从相机胶卷中获得的相同字节?如果我这样做,我还需要确保我保存与相机胶卷相同的 JPG 格式......
谢谢!帕特里克
当我得到用户用相机拍摄的新图像并保存其校验和时,当用户稍后从相机胶卷重新加载相同的图像时,校验和是不同的。会不会是因为相机胶卷里保存的图片是JPG格式的,有损,所以像素不一样?我正在尝试使用校验和来检测它是否是相同的图像:知道如何克服这种情况吗?我是否需要自己将其保存为 JPG,然后将其读入内存,以便获得与稍后从相机胶卷中获得的相同字节?如果我这样做,我还需要确保我保存与相机胶卷相同的 JPG 格式......
谢谢!帕特里克
我不是 iPhone 专家,但我知道保存 JPEG 时,有许多“质量”参数,如果将图像编码为 JPEG 格式,参数略有不同,像素值会有所不同。
因此,除非您能找到一种使用与相机胶卷完全相同的过程可靠地将图像转换为 JPEG 的方法,否则您自己将图像转换为 JPEG 并没有多大用处。
如果可以读取相机胶卷中图像的创建时间或一些类似的元数据,这可能是一个更好的方法。
返回图像的 API 会返回来自相机的原始数据,或从库中转换为原始数据的图像。
正如您所推测的,JPG 过程是有损的,因此即使图像大小相同,原始数据也会有所不同。
您可能最好在几个固定位置取一个区域的平均值并将其用作校验和,当然这很容易产生误报,因此您需要小心如何操作。