ALAssetRepresentation がメタデータの詳細を適切にリストしていない。つまり、画像のメタデータを取得しようとすると、以下のようにいくつかの詳細しか返されない
2015-06-25 10:15:22.134 Phokl copy[1394:607] {
ColorModel = RGB;
DPIHeight = 72;
DPIWidth = 72;
Depth = 8;
Orientation = 1;
PixelHeight = 1250;
PixelWidth = 834;
"{Exif}" = {
ColorSpace = 1;
ComponentsConfiguration = (
1,
2,
3,
0
);
ExifVersion = (
2,
2,
1
);
FlashPixVersion = (
1,
0
);
PixelXDimension = 834;
PixelYDimension = 1250;
SceneCaptureType = 0;
};
"{TIFF}" = {
Orientation = 1;
ResolutionUnit = 2;
XResolution = 72;
YResolution = 72;
};
しかし、他の iOS アプリやオンラインの exif データ エクストラクタで確認すると、同じ画像の詳細が表示され、ISOSpeedRatings、FocalLength、LensModel などから必要なものが得られます。
asset.defaultRepresentation.metadata でこれらの詳細を取得できないのはなぜですか? 誰もこれについて手がかりを持っていますか?
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:info[UIImagePickerControllerReferenceURL] resultBlock:^(ALAsset *asset) {
// get imagePropertiesDictionary
NSDictionary *imagePropertiesDictionary;
imagePropertiesDictionary = asset.defaultRepresentation.metadata;
// get exif data
NSLog(@"%@",imagePropertiesDictionary);
iOS で利用可能な代替アプローチはありますか?
アップデート
私は問題を見つけたと思います。実際、メタデータを取得できなかった UIImagePickerController デリゲートで試してみました。しかし、サーバーから直接ダウンロードした同じ画像のコピーを試してみたところasset.defaultRepresentation.metadata
、実際のメタデータが返されました。したがって、ここで問題が実際に発生するのは、UIImagePickerController を使用してフォト ライブラリから選択した画像で、exif データが失われた場所です。
これは UIImagePickerController のデフォルトの動作ですか?