首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSData -> UIImage -> NSData?

NSData -> UIImage -> NSData?
EN

Stack Overflow用户
提问于 2014-02-28 21:44:54
回答 3查看 324关注 0票数 0

在做了类似的事情之后

代码语言:javascript
复制
NSData *originalImageData = [NSData dataWithContentsOfFile:@"somefolder\somepicture.jpg"];
UIImage *theImage = [UIImage imageWithData:originalImageData];

有任何方法从NSData对象中获取实际的UIImage吗?

功能

代码语言:javascript
复制
NSData *newImageData = UIImageJPEGRepresentation(theImage, 1.0);

不返回相同的NSData,我认为这是由于压缩(或缺少压缩)。我认为这可能适用于.png文件(没有压缩),但是.pngs要大得多,不适合用于我正在做的事情。

最后,我只是想找个办法

代码语言:javascript
复制
[newImageData isEqualToData:originalImageData]

评估为真。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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

票数 3
EN

Stack Overflow用户

发布于 2014-02-28 22:07:49

也许它可以更好地存储您的图像的哈希(MD5),并比较2哈希.您可以使用属性创建从MD5UIImage继承的UIImage,以存储MD5 + NSData+MD5类别来计算MD5.谷歌"NSDATA+MD5“为例..。

票数 0
EN

Stack Overflow用户

发布于 2014-02-28 22:10:37

为什么还要使用dataWithContentsOfFile呢?只需将imageNamed:用作:

代码语言:javascript
复制
// Returns the image object associated with the specified filename.

+ (UIImage *)imageNamed:(NSString *)name

像这样:

代码语言:javascript
复制
{
  UIImage *theImage = [UIImage imageNamed: @"somepicture.jpg"]
  // …
}

您需要确保您的图像文件在主包中。你也有:

代码语言:javascript
复制
// Creates and returns an image object by loading the image data from the file at the specified path.

+ (UIImage *)imageWithContentsOfFile:(NSString *)path

这大概是放松了“主束”的限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22106416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档