美文网首页
拍照时获取的图片向左转90度的问题

拍照时获取的图片向左转90度的问题

作者: 风飞燕 | 来源:发表于2017-07-07 10:17 被阅读56次

    前面发了一篇文,做的图片剪裁,在用的时候呢会出现这样的问题,
    在这个代理方法里面

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    

    我们获取的图片类型为 UIImagePickerControllerOriginalImage
    然后呢。。。。

    直立.jpg

    我们想要的效果是这样的,然而.....

    躺着的我马.jpg

    得到的结果是这样的,我想表达的大概就是这个意思,你就想这站立和左边侧躺的感觉吧。

    so..................................................
    肿么办呢,你只需要这样这样

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
        //    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
                UIImage *image;
    //我们进行这样的处理
        image = [self turnImageWithInfo:info];
    //下面的就....
    }
    - (UIImage *)turnImageWithInfo:(NSDictionary<NSString *,id> *)info {
        UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage];
        //类型为 UIImagePickerControllerOriginalImage 时调整图片角度
        NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
        if ([type isEqualToString:@"public.image"]) {
            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();
            }
        }
        return image;
        
    }
    
    

    试试吧,这样杂家的龙马就✧(≖ ◡ ≖✿)。

    相关文章

      网友评论

          本文标题:拍照时获取的图片向左转90度的问题

          本文链接:https://www.haomeiwen.com/subject/bprlhxtx.html