- 在iOS 13.1 使用 UIImagePickerController 获取相册的图片上传到服务器,但是获取的image确实数据
如图:
不正常的 (iOS13.1)

正常的 (ios 12.4)

UIImagePickerController 打理方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey,id> *)info {
UIImage *image = info[UIImagePickerControllerOriginalImage];
self.planImg.image = image;
}- 如果在self.planImg.image = image,设置断点,查看image(日志台有个眼睛的图片)看到的是一张图片,但是在iOS13.1看到的是这种情况:

- 但是此时image还是一个有值得对象,并不是nil,而且使用系统的PHImageManager获取图片的imageData是空值
- 如果想获取图片上传到服务器,目前我的解决方法是图片处理
- 在UIImagePickerController代理实现
UIImage *image = info[UIImagePickerControllerOriginalImage];
//转化为位图
CGImageRef temImg = image.CGImage;
//根据范围截图
temImg=CGImageCreateWithImageInRect(temImg, CGRectMake(0, 0, image.size.width, image.size.height));
//得到新的图片
UIImage *newImage = [UIImage imageWithCGImage:temImg];
//释放位图对象
CGImageRelease(temImg);
self.planImg.image = newImage;- 最后将图片转为imageData就可以上传图片了