gpt4 book ai didi

iphone - 用相机拍摄的照片不包含任何 ALAsset 元数据

转载 作者:太空狗 更新时间:2023-10-30 03:31:42 25 4
gpt4 key购买 nike

最奇怪的事情正在发生。我有一个操作表,让用户可以选择用相机拍照或从相机胶卷中选择一张照片。在 UIImagePicker 从选择中返回后,我使用 ALAssetsLibrary 来确定照片中嵌入的 GPS 信息。从相机胶卷中选择一张照片效果很好,我能够检索 GPS 信息。然而,用相机拍照绝对不会提供 GPS 信息,事实上我根本没有元数据。有谁知道我在这里做错了什么?

代码如下:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if([mediaType isEqualToString:(__bridge NSString *)kUTTypeImage])
{
void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *) = ^(ALAsset *asset)
{
// get images metadata
NSDictionary *metadata = asset.defaultRepresentation.metadata;
NSLog(@"Image Meta Data: %@",metadata);

// get coords
CLLocation *location = [asset valueForProperty:ALAssetPropertyLocation];
NSLog(@"coordLat: %f , coordLon: %f", location.coordinate.latitude, location.coordinate.longitude);

// do more here - rest of code snipped to keep this question short

};
NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:assetURL
resultBlock:ALAssetsLibraryAssetForURLResultBlock
failureBlock:^(NSError *error)
{
// handle error
}];

// rest of code snipped to keep this question short

正如我所解释的,使用相机时会输出以下内容。

2012-04-15 17:58:28.032 MyApp[511:707] Image Meta Data: (null)
2012-04-15 17:58:28.041 MyApp[511:707] coordLat: 0.000000 , coordLon: 0.000000

但是,如果我选择现有照片,或退出应用程序,用相机拍摄一张新照片,然后返回应用程序并从相机胶卷中选择该照片,我会从 NSLog 获得以下输出。

2012-04-15 17:57:03.286 MyApp[511:707] Image Meta Data: {
ColorModel = RGB;
DPIHeight = 72;
DPIWidth = 72;
Depth = 8;
Orientation = 6;
PixelHeight = 1936;
PixelWidth = 2592;
"{Exif}" = {
ApertureValue = "2.970854";
BrightnessValue = "2.886456";
ColorSpace = 1;
ComponentsConfiguration = (
1,
2,
3,
0
);
DateTimeDigitized = "2012:04:15 17:24:02";
DateTimeOriginal = "2012:04:15 17:24:02";
ExifVersion = (
2,
2,
1
);
ExposureMode = 0;
ExposureProgram = 2;
ExposureTime = "0.06666667";
FNumber = "2.8";
Flash = 24;
FlashPixVersion = (
1,
0
);
FocalLength = "3.85";
ISOSpeedRatings = (
80
);
MeteringMode = 5;
PixelXDimension = 2592;
PixelYDimension = 1936;
SceneCaptureType = 0;
SensingMethod = 2;
Sharpness = 2;
ShutterSpeedValue = "3.9112";
SubjectArea = (
1295,
967,
699,
696
);
WhiteBalance = 0;
};
"{GPS}" = {
Altitude = "14.9281";
AltitudeRef = 0;
ImgDirection = "107.4554";
ImgDirectionRef = T;
Latitude = "32.7366666666667";
LatitudeRef = N;
Longitude = "71.679";
LongitudeRef = W;
TimeStamp = "21:26:20.00";
};
"{TIFF}" = {
DateTime = "2012:04:15 17:24:02";
Make = Apple;
Model = "iPhone 4";
Orientation = 6;
ResolutionUnit = 2;
Software = "5.0.1";
XResolution = 72;
YResolution = 72;
"_YCbCrPositioning" = 1;
};
}
2012-04-15 17:57:03.302 MyApp[511:707] coordLat: 32.7366666666667 , coordLon: -71.679

PS - 我正在使用带 ARC 的 xCode 4.3

最佳答案

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

保存照片时试试这个

    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:image.CGImage
metadata:[info objectForKey:UIImagePickerControllerMediaMetadata]
completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"assetURL %@", assetURL);
}];

关于iphone - 用相机拍摄的照片不包含任何 ALAsset 元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10166575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com