【问题标题】:UIImagePickerController Image TypeUIImagePickerController 图像类型
【发布时间】:2014-04-06 02:52:42
【问题描述】:

我的应用程序允许用户从设备的相机胶卷中选择图像。我想验证所选图像的格式是 PNG 或 JPG 图像。

是否可以在- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 委托方法中做到这一点?

【问题讨论】:

    标签: ios7 uiimage uiimagepickercontroller


    【解决方案1】:

    是的,您可以在委托回调中执行此操作。您可能已经注意到UIImagePickerControllerMediaType info 字典键将返回一个“public.image”字符串作为 UTI,这不足以满足您的目的。但是,这可以通过使用与 info 字典中的 UIImagePickerControllerReferenceURL 键关联的 url 来完成。例如,实现可能类似于下面的方法。

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
        UIImage *image = info[UIImagePickerControllerEditedImage];
        NSURL *assetURL = info[UIImagePickerControllerReferenceURL];
    
        NSString *extension = [assetURL pathExtension];
        CFStringRef imageUTI = (UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,(__bridge CFStringRef)extension , NULL));
    
        if (UTTypeConformsTo(imageUTI, kUTTypeJPEG))
        {
            // Handle JPG
        }
        else if (UTTypeConformsTo(imageUTI, kUTTypePNG))
        {
            // Handle PNG
        }
        else
        {
            NSLog(@"Unhandled Image UTI: %@", imageUTI);
        }
    
        CFRelease(imageUTI);
    
        [self.imageView setImage:image];
    
        [picker dismissViewControllerAnimated:YES completion:NULL];
    }
    

    您还需要链接 MobileCoreServices.framework 并添加 #import <MobileCoreServices/MobileCoreServices.h>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 2012-02-16
      • 2011-03-16
      相关资源
      最近更新 更多