如何在不更改图像的情况下更新ALAsset的exif?
我使用setImageData:metadata:completionBlock:
ALAsset
来更新资产的exif(元数据)。
我只想更新元数据,但此方法需要imageData
作为第一个参数。 我使用下面的代码生成imageData
,但它修改了我的图像(我检查了文件大小和文件哈希)。
ALAssetRepresentation *dr = asset.defaultRepresentation; UIImage *image = [UIImage imageWithCGImage:dr.fullResolutionImage scale:dr.scale orientation:dr.orientation]; NSData *data = UIImageJPEGRepresentation(image, 1);
有没有其他方法可以用来更新ALAsset
的exif? 或者以任何方式为方法setImageData:metadata:completionBlock:
生成正确的imageData
setImageData:metadata:completionBlock:
?
我找到了一种生成imageData
。 代码如下:
Byte *buffer = (Byte *)malloc(dr.size); NSUInteger k = [dr getBytes:buffer fromOffset:0.0 length:dr.size error:nil]; NSData *data = [NSData dataWithBytesNoCopy:buffer length:k freeWhenDone:YES];
所以我可以使用上面的数据和setImageData:metadata:completionBlock:
来只更新ALAsset
的exif。