image Could not load Quick Look data for "image"

3,356 阅读1分钟

- 在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就可以上传图片了