iPhone,如何从照片库中读取图像作为NSData?

Sol*_*444 8 iphone xcode uiimagepickercontroller uiimage nsdata

在iPhone上,我使用assest库将图像保存(通过图像代码后附加数据),将图像保存到照片库,将NSData直接保存到照片库.现在我想从照片库中读回图像作为NSData来读取它.如果我将其作为UIImage读取,它会更改图像内的数据.

如何将照片库中的照片作为NSData读取?我尝试在4.1中查看参考URL,但没有运气.

编辑:我编辑解释为什么我将其保存为NSData.如果您只想要纯NSData,则答案中的URL方法有效,但在我要求的上下文中没有帮助.

编辑2:getBytes的答案是为我做的答案.我使用的代码是:

int8_t *bytes = malloc([representation size]);
NSUInteger length = [representation getBytes:bytes fromOffset:0 length:[representation size] error:&error];
Run Code Online (Sandbox Code Playgroud)

这能够让我得到文件里面的所有内容,它给了我在NSData表单中添加的图像代码PLUS.

编辑3:

现在有没有办法在iOS 10中使用PHPhotoLibrary替换AssetLibrary?我需要NSData中的图像是原始的RAW图像,没有任何修改.

hol*_*ann 3

您应该查看 ALAssetRepresentation 的 getBytes 方法。这为您提供了图像的原始 RAW 图像数据,并且还可以使用缓冲区来处理图像,而不是一次性将图像全部读入内存。当然,您始终可以从 getBytes 方法生成 NSData。

干杯,

亨德里克