iOS开发之相机图片旋转90度
2020-03-11 本文已影响0人
chasitu
今天更换文件上传方法的时候发现相机返回的图片默认是向左旋转了90度,之前使用路径上传把图片直接写入本地上传图片的时候不会出现这个问题,
解决
- 方法一:把获取的图片旋转之后上传服务器
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
if ([type isEqualToString:@"public.image"]) {
UIImage* image=[info objectForKey:UIImagePickerControllerOriginalImage];
UIImageOrientation imageOrientation=image.imageOrientation;
if(imageOrientation!=UIImageOrientationUp)
{
// 原始图片可以根据照相时的角度来显示,但UIImage无法判定,于是出现获取的图片会向左转90度的现象。
// 以下为调整图片角度的部分
UIGraphicsBeginImageContext(image.size);
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// image=矫正过的图片
}
[picker dismissViewControllerAnimated:YES completion:nil];
}
}
- 方法二:写入本地,然后使用路径上传,这样的话不操心旋转的问题
NSData *data = UIImageJPEGRepresentation(image, 0.5);
[data writeToFile:filePath atomically:NO];
这些都是补救的办法,有个遗憾就是我找了半天在苹果api里面没有找到相关设置属性,也许我找的地方不对吧,有空再找找~ _ ~