美文网首页
iOS 设置图片方向

iOS 设置图片方向

作者: b6732342bd5f | 来源:发表于2019-08-13 10:24 被阅读0次

    -(UIImage*)image:(UIImage*)image rotation:(UIImageOrientation)orientation

    {

        longdoublerotate =0.0;

        CGRectrect;

        floattranslateX =0;

        floattranslateY =0;

        floatscaleX =1.0;

        floatscaleY =1.0;

        switch(orientation) {

            case UIImageOrientationLeft:

                rotate =M_PI_2;

                rect =CGRectMake(0,0, image.size.height, image.size.width);

                translateX =0;

                translateY = -rect.size.width;

                scaleY = rect.size.width/rect.size.height;

                scaleX = rect.size.height/rect.size.width;

                break;

            case UIImageOrientationRight:

                rotate =3*M_PI_2;

                rect =CGRectMake(0,0, image.size.height, image.size.width);

                translateX = -rect.size.height;

                translateY =0;

                scaleY = rect.size.width/rect.size.height;

                scaleX = rect.size.height/rect.size.width;

                break;

            case UIImageOrientationDown:

                rotate =M_PI;

                rect =CGRectMake(0,0, image.size.width, image.size.height);

                translateX = -rect.size.width;

                translateY = -rect.size.height;

                break;

            default:

                rotate =0.0;

                rect =CGRectMake(0,0, image.size.width, image.size.height);

                translateX =0;

                translateY =0;

                break;

        }

        UIGraphicsBeginImageContext(rect.size);

        CGContextRef context =UIGraphicsGetCurrentContext();

        //做CTM变换

        CGContextTranslateCTM(context,0.0, rect.size.height);

        CGContextScaleCTM(context,1.0, -1.0);

        CGContextRotateCTM(context, rotate);

        CGContextTranslateCTM(context, translateX, translateY);

        CGContextScaleCTM(context, scaleX, scaleY);

        //绘制图片

        CGContextDrawImage(context,CGRectMake(0,0, rect.size.width, rect.size.height), image.CGImage);

        UIImage *newPic =UIGraphicsGetImageFromCurrentImageContext();

        returnnewPic;

    }

    相关文章

      网友评论

          本文标题:iOS 设置图片方向

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