获取UIImage的图像MD5

来源:互联网 发布:高斯混合模型 知乎 编辑:程序博客网 时间:2024/06/06 08:39

问:

I'm trying to compare two UIImages from the file system to see if they are the same. Obviously, I can't use NSObject's hash method, since this returns a hash of the object, and not the actual image data.

I found code generate an MD5 hash from a string, but I haven't discovered how to implement it for a UIImage.

How should I go about hashing a UIImage? Or is my method for comparing to images totally off?



回答:


I wound up using the following code to accomplish the task. 

Note that this requires that you import<CommonCrypto/CommonDigest.h>:


unsigned char result[16];
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(inImage)];
CC_MD5(imageData, [imageData length], result);
NSString *imageHash = [NSString stringWithFormat:                                           @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",                                           result[0], result[1], result[2], result[3],                                            result[4], result[5], result[6], result[7],                                           result[8], result[9], result[10], result[11],                                           result[12], result[13], result[14], result[15]                                           ];