iOS 图片上传被后台给旋转了90度

本文介绍了一种解决iOS设备上照片上传时自动旋转问题的方法。通过检查UIImage的方向并在上传前进行必要的转换,确保图片正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图片在不裁切的情况下上传到服务器,结果返回的图片被强制转了90度,很生气.

当使用相机拍照之后,或者是相册选择照片之后,如果没有开启照片的编辑,那么后台就有可能会把 照片进行旋转,这个不知道是为啥.所以在不开启裁切,后台给旋转的情况下,使用下面的方法进行处理.可以在上传之前处理,也可以在imagepicker的didfinish的代理方法中处理.
    if (image.imageOrientation != UIImageOrientationUp)
    {
        UIGraphicsBeginImageContextWithOptions(image.size, NO, image.scale);
        [image drawInRect:(CGRect){0,0,image.size}];
        UIImage * normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        image = normalizedImage;
    }

为了尽可能的展示图片的原貌,
    self.imageView.contentMode = UIViewContentModeScaleAspectFit; 


在这里还有一种情况,就是代理方法的不同

1.这个方法获取选取的图片方法为:UIImage *image = info[UIImagePickerControllerOriginalImage];这个方法可能会出现图片旋转的问题.像是那种还没有从icould完全下载下来的图片,这个代理方法是不走的

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info;

2.这个方法虽然可能不会出现旋转的问题,但是这个方法选取的照片有限制,像是那种还没有从icould完全下载下来的图片,回调的image对象是为nil的.要是有操作,像是加入数组,就有可能崩溃.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary<NSString *,id> *)editingInfo NS_DEPRECATED_IOS(2_0, 3_0);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值