繁体   English   中英

NSData-> UIImage-> NSData?

[英]NSData -> UIImage -> NSData?

经过类似的事情

NSData *originalImageData = [NSData dataWithContentsOfFile:@"somefolder\somepicture.jpg"];
UIImage *theImage = [UIImage imageWithData:originalImageData];

有什么方法可以从UIImage对象获取实际的NSData吗?

功能

NSData *newImageData = UIImageJPEGRepresentation(theImage, 1.0);

不会返回相同的NSData,我认为这是由于压缩(或压缩)所致。 我想这可能适用于.png文件(无压缩),但是.pngs更大,不适合我在做什么。

最后,我主要只是在寻找一种制作方式

[newImageData isEqualToData:originalImageData]

评估为真实。

否。无法从图像中获取原始数据。 如果以后需要,则必须将数据存储在某个地方。

您可以看一下这些主题,以获取有关iOS中图像处理的更多信息:

从用户库保存到JPEG或从中获取JPEG,而无需重新压缩

将UIImage数据保存到iOS中的照片库后取回

可能最好是存储图像的哈希值(MD5),然后比较2个哈希值。...您可以创建一个UI5继承自MDImage的MD5UIImage,并带有一个属性来存储MD5 + NSData + MD5类别以计算MD5 ... Google“ NSDATA + MD5”的示例...

为什么还要使用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

大概放宽了“主捆绑包”的限制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM