在做了类似的事情之后
NSData *originalImageData = [NSData dataWithContentsOfFile:@"somefolder\somepicture.jpg"];
UIImage *theImage = [UIImage imageWithData:originalImageData];有任何方法从NSData对象中获取实际的UIImage吗?
功能
NSData *newImageData = UIImageJPEGRepresentation(theImage, 1.0);不返回相同的NSData,我认为这是由于压缩(或缺少压缩)。我认为这可能适用于.png文件(没有压缩),但是.pngs要大得多,不适合用于我正在做的事情。
最后,我只是想找个办法
[newImageData isEqualToData:originalImageData]评估为真。
发布于 2014-02-28 21:56:14
不是的。无法从图像中获取原始数据。如果以后需要的话,您必须将数据存储在某个地方。
您可以查看这些主题,以获得有关iOS中的图像处理的更多信息:
Saving to/getting JPEG from user gallery without recompression
Get back UIImage data after saving it to photo Library in iOS
发布于 2014-02-28 22:07:49
也许它可以更好地存储您的图像的哈希(MD5),并比较2哈希.您可以使用属性创建从MD5UIImage继承的UIImage,以存储MD5 + NSData+MD5类别来计算MD5.谷歌"NSDATA+MD5“为例..。
发布于 2014-02-28 22:10:37
为什么还要使用dataWithContentsOfFile呢?只需将imageNamed:用作:
// Returns the image object associated with the specified filename.
+ (UIImage *)imageNamed:(NSString *)name像这样:
{
UIImage *theImage = [UIImage imageNamed: @"somepicture.jpg"]
// …
}您需要确保您的图像文件在主包中。你也有:
// Creates and returns an image object by loading the image data from the file at the specified path.
+ (UIImage *)imageWithContentsOfFile:(NSString *)path这大概是放松了“主束”的限制。
https://stackoverflow.com/questions/22106416
复制相似问题