2

ALAssetsLibrary を使用して、任意の UIImage をカメラ ロールに書き込みます。

    NSMutableDictionary exifAttachments = [[NSMutableDictionary alloc] init];
        }

        [exifAttachments setValue:[NSNumber numberWithInt:imgWidth] forKey:(NSString*)kCGImagePropertyExifPixelXDimension]; //OK
        [exifAttachments setValue:[NSNumber numberWithInt:imgHeight] forKey:(NSString*)kCGImagePropertyExifPixelYDimension]; //OK
        [exifAttachments setValue:[NSDate date] forKey:(NSString*)kCGImagePropertyExifDateTimeDigitized]; //NOT OK

    _assetsLibrary writeImageToSavedPhotosAlbum:[img CGImage] metadata:exifAttachments completionBlock:^(NSURL *assetURL, NSError *error) {
            NSLog(@"Big error: %@", [error description]);
        }];

これは一部のパラメータでは問題なく機能しますが、「デジタル化された時間」、「ホワイト バランス」などのカメラ関連のパラメータはすべて無視されます。私のコードに何か問題がありますか? カメラ固有の EXIF メタデータを手動で追加するにはどうすればよいですか?

[編集] 自分で解決策を見つけました。すべての EXIF データに対して、child-NSDictionary を追加する必要があります。

    [exifAttachments setObject:[NSMutableDictionary dictionaryWithCapacity:1] forKey:(NSString*)kCGImagePropertyExifDictionary];

この子にデータを追加すると、すべて正常に動作します。

よろしく、

4

1 に答える 1

0

上記の編集を参照してください。

[exifAttachments setObject:[NSMutableDictionary dictionaryWithCapacity:1] forKey:(NSString*)kCGImagePropertyExifDictionary];
于 2012-05-27T13:20:03.483 に答える