imagePickerController 返回 0 字节的图像

Posted

技术标签:

【中文标题】imagePickerController 返回 0 字节的图像【英文标题】:imagePickerController returns image with 0 bytes 【发布时间】:2016-02-19 02:48:05 【问题描述】:

我有一个 iPad 应用程序,我试图让用户用相机拍照,然后将其保存到我的服务器。但由于某种原因,从

返回的 UIImage
- (void)imagePickerController:(UIImagePickerController *)thePicker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo

返回一个 0 字节的图像...

奇怪的是我可以在 UIImageView 中很好地显示这个图像,但是当我尝试将它保存到我的服务器时,它发送了 0 个字节,所以什么都没有保存。

我被难住了,有什么想法吗?

非常感谢您的任何建议,

【问题讨论】:

请以正确的格式发布代码。 【参考方案1】:

试试这个

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

        UIImage *chosenImage = info[UIImagePickerControllerOriginalImage];
        UIImage *newImage = [self scaleAndRoateImage:chosenImage];

        [picker dismissViewControllerAnimated:YES completion:nil];
    ];

希望对你有帮助

【讨论】:

不幸的是,它也是一样的,choiceImage 和 newImage 都是 0 字节。 奇怪你能试试 NSData *imgData = UIImageJPEGRepresentation(newImage, 1.0); NSLog(@"图像大小(字节):%d",[imgData length]);【参考方案2】:

显然在访问信息字典之前关闭 imageController 解决了这个问题。

那就试试吧

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

        [picker dismissViewControllerAnimated:YES completion:nil];
        UIImage *chosenImage = info[UIImagePickerControllerOriginalImage];
        UIImage *newImage = [self scaleAndRoateImage:chosenImage];

    ];

更多信息:

http://iphonedevsdk.com/forum/iphone-sdk-development/52639-uiimagepickercontroller-issue-did-i-miss-something.html#post266218

【讨论】:

【参考方案3】:

签入这个委托方法:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
   UIImage *chosenImage = info[UIImagePickerControllerOriginalImage];

【讨论】:

以上是关于imagePickerController 返回 0 字节的图像的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ImagePickerController 直接显示“相机胶卷”

无法获取 UIImage 以匹配自定义 ImagePickerController 预览

imagePickerController 选择照片时出错

imagePickerController 获取图片的拍照时间等信息

SWIFTUI 警告 imagePickerController 几乎匹配 - 仅在现有的 swift 项目文件中发生

为啥 imagePickerController.mediaTypes = [kUTTypeMovie as String] 包括实时照片作为反弹或循环效果作为视频?