从 UIImagePickerController 获取图像

问题描述 投票:0回答:5

我想从

imagepickercontroller
获取图像。但是我的代码没有任何效果 这是代码..

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [picker dismissModalViewControllerAnimated:YES];
    imageview.image = [UIImage imageNamed:[info objectForKey:@"UIImagePickerControllerOriginalImage"]];
ios uiimagepickercontroller
5个回答
9
投票

您可以尝试此代码来访问从选择器返回的图像

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

    [picker dismissModalViewControllerAnimated:YES];

    UIImage* originalImage = nil;
    originalImage = [info objectForKey:UIImagePickerControllerEditedImage];
    if(originalImage==nil)
    {
        originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];
    }
    if(originalImage==nil)
    {
        originalImage = [info objectForKey:UIImagePickerControllerCropRect];
    }
  //At this point you have the selected image in originalImage
    [self saveImageToDocumentDirectory:originalImage];
}

7
投票

尝试

imageview.image = (UIImage*) [info objectForKey:UIImagePickerControllerOriginalImage];

5
投票

针对 Swift 5 进行了更新,以下内容将安全地解开

UIImage

// This uses the full key value
guard let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage else { return }

// This uses only the info key value for shorter code
guard let image = info[.originalImage] as? UIImage else { return }

0
投票

更新至 Swift 5,以下将安全获取 UIImage

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    var newImage: UIImage
    if let possibleImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
        newImage = possibleImage
    } else if let possibleImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
        newImage = possibleImage
    } else {
        return
    }
    
    m_imgView.image = newImage
    
    self.dismiss(animated: true, completion: nil)
}

希望对您有帮助。


-1
投票

试试这个

imageview.image = [info objectForKey:UIImagePickerControllerOriginalImage];
© www.soinside.com 2019 - 2024. All rights reserved.