Tôi đang sử dụng writeImageToSavedPhotosAlbum:metadata:completionBlock: để lưu hình ảnh vào thư viện ảnh (dữ liệu GPS trong từ điển được chuyển đến siêu dữ liệu). Tuy nhiên hình ảnh bị mất phương hướng (khi tôi lật thiết bị trong khi chụp ảnh).Làm thế nào để lưu ảnh với EXIF (GPS) VÀ định hướng trên iPhone?
Có một hàm khác writeImageToSavedPhotosAlbum: orientation: completionBlock: nhưng tôi sẽ không thể chuyển dữ liệu EXIF.
Theo tài liệu, có kCGImagePropertyOrientation thuộc tính để đặt hướng thủ công nhưng tôi gặp sự cố khi phát hiện hướng hiện tại của thiết bị trong khi chụp ảnh và lưu ảnh.
Có ai đã đạt được ảnh lưu với dữ liệu EXIF và định hướng đúng không? Bất kỳ trợ giúp sẽ được rất đánh giá cao.
Dưới đây là mã của tôi:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[self dismissModalViewControllerAnimated:YES];
[imageView setImage:image];
if(sourceCamera) {
//EXIF and GPS metadata dictionary
(...)
//saving image
ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
[al writeImageToSavedPhotosAlbum:[image CGImage]
metadata:dict
completionBlock:^(NSURL *assetURL, NSError *error) {
if (error == nil) {
NSLog(@"saved");
} else {
NSLog(@"error");
}
}];
[al release];
}
}
Best wishes,
a.
Cảm ơn bạn đã trả lời, bạn thật tuyệt! UIImageOrientation, thật đơn giản ... không thể tìm thấy bất kỳ giải pháp nào cho kCGImagePropertyOrientation và UIImageOrientation. Tôi chỉ yêu hội đồng này! – akashic
Anomie, điều đó có ý nghĩa, nhưng ở đâu trong mã OP nên anh ta thực sự thực hiện cài đặt và cách thực hiện? OP phải thực sự thiết lập một giá trị cho kCGImagePropertyOrientation ở đâu đó, đúng không? –
@BenjaminWheeler cần sửa đổi từ điển siêu dữ liệu của 'ALAsset'. Khi bạn có 'ALAsset', hãy lấy từ điển siêu dữ liệu theo cách này:' myMetadataDictionary = [[myAsset defaultRepresentation] metadata] '. Sau đó, đặt định hướng: 'myMetadataDictionary [(NSString *) kCGImagePropertyOrientation] = orientation', trong đó' orientation' là một trong các số nguyên được đưa ra bởi @Anomie ở trên. –