美文网首页
iOS 拍照上传图片是反的问题

iOS 拍照上传图片是反的问题

作者: 路边的风景呢 | 来源:发表于2018-07-19 10:41 被阅读20次

    这个是方法 直接粘进去 然后在用的地方调用方法就OK

    //旋转图片

    - (UIImage *)fixOrientation:(UIImage *)aImage {

        // No-op if the orientation is already correct

        if(aImage.imageOrientation == UIImageOrientationUp)

            returnaImage;

        // We need to calculate the proper transformation to make the image upright.

        // We do it in 2 steps: Rotate if Left/Right/Down, and then flip if Mirrored.

        CGAffineTransform transform = CGAffineTransformIdentity;

        switch(aImage.imageOrientation) {

            caseUIImageOrientationDown:

            caseUIImageOrientationDownMirrored:

                transform = CGAffineTransformTranslate(transform, aImage.size.width, aImage.size.height);

                transform = CGAffineTransformRotate(transform, M_PI);

                break;

            caseUIImageOrientationLeft:

            caseUIImageOrientationLeftMirrored:

                transform = CGAffineTransformTranslate(transform, aImage.size.width,0);

                transform = CGAffineTransformRotate(transform, M_PI_2);

                break;

            caseUIImageOrientationRight:

            caseUIImageOrientationRightMirrored:

                transform = CGAffineTransformTranslate(transform,0, aImage.size.height);

                transform = CGAffineTransformRotate(transform, -M_PI_2);

                break;

            default:

                break;

        }

        switch(aImage.imageOrientation) {

            caseUIImageOrientationUpMirrored:

            caseUIImageOrientationDownMirrored:

                transform = CGAffineTransformTranslate(transform, aImage.size.width,0);

                transform = CGAffineTransformScale(transform, -1,1);

                break;

            caseUIImageOrientationLeftMirrored:

            caseUIImageOrientationRightMirrored:

                transform = CGAffineTransformTranslate(transform, aImage.size.height,0);

                transform = CGAffineTransformScale(transform, -1,1);

                break;

            default:

                break;

        }

        // Now we draw the underlying CGImage into a new context, applying the transform

        // calculated above.

        CGContextRef ctx = CGBitmapContextCreate(NULL, aImage.size.width, aImage.size.height,

                                                 CGImageGetBitsPerComponent(aImage.CGImage),0,

                                                 CGImageGetColorSpace(aImage.CGImage),

                                                 CGImageGetBitmapInfo(aImage.CGImage));

        CGContextConcatCTM(ctx, transform);

        switch(aImage.imageOrientation) {

            caseUIImageOrientationLeft:

            caseUIImageOrientationLeftMirrored:

            caseUIImageOrientationRight:

            caseUIImageOrientationRightMirrored:

                // Grr...

                CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.height,aImage.size.width), aImage.CGImage);

                break;

            default:

                CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.width,aImage.size.height), aImage.CGImage);

                break;

        }

        // And now we just create a new UIImage from the drawing context

        CGImageRef cgimg = CGBitmapContextCreateImage(ctx);

        UIImage *img = [UIImage imageWithCGImage:cgimg];

        CGContextRelease(ctx);

        CGImageRelease(cgimg);

        returnimg;

    }

    相关文章

      网友评论

          本文标题:iOS 拍照上传图片是反的问题

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