4

を使用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);

のexifだけを更新するために使用できる他の方法はありALAssetますか? または、メソッドの権利を生成するimageData方法はありsetImageData:metadata:completionBlock:ますか?

4

1 に答える 1

1

を生成する方法を見つけました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:、のexifのみを更新できますALAsset

于 2012-07-20T10:34:31.463 に答える