UIImage *tempImage = [UIImage imageWithCGImage:imageRef];
NSLog(@"--- %d",tempImage.imageOrientation);
//需要按照旋转后的方向重置图片的方向
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef scale:1.0 orientation:UIImageOrientationRight];
NSLog(@"--- %d",cropped.imageOrientation);
CGImageRelease(imageRef);
//获得图片的data
NSData *data = UIImageJPEGRepresentation(croppedImage, 0.5);
这个时候把data上传到服务器,返回的链接找到的图片始终是up方向的,这是为什么!上传图片之前我已经修改图片的方向了啊
备注:安卓的同事,旋转之后上传图片就是正常的,这个应该是我们客户端的问题吧!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
后来找到问题了,上面这个是我写错了,newImage就是croppedImage!
问题解决了,我简答说下思路,大家可以参考下
背景:项目中有个上传图片的功能,图片可以从相册或者照相获取,可以对图片进行旋转和裁剪!在此Demo上进行修改:https://github.com/myang-git/iOS-Image-Crop-View
开始操作的流程,直说重点:
应该是 NSData *data = UIImageJPEGRepresentation(newImage, 0.5); 吧
之前碰到过这个问题,是UIImageJPEGRepresentation方法造成的。
你自己回答的是一种解决方案,还有一种方案,在上传到云服务时带着方向参数。
比如我用又拍云的iOS sdk(form api),只需要把x-gmkerl-rotate参数设置为auto即可(默认为空)
如果你在意图片的方向, 并试图对其做出改变, 请查阅图像文件的
Exif
数据. 然后对其中的方向做出辅助调整.顺便赞一下
markdown
文档支持