PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > iOS开发教程 > 正文

    旋转图片

    作者:张志勇来源:原创浏览:时间:2020-09-30 00:07:50我要评论
    导读:- (UIImage *)image:(UIImage *)image rotation:(UIImageOrientation)orientation{ long double rotate = 0.0; CGRect rect...
    - (UIImage *)image:(UIImage *)image rotation:(UIImageOrientation)orientation

    {

        long double rotate = 0.0;

        CGRect rect;

        float translateX = 0;

        float translateY = 0;    

        float scaleX = 1.0;

        float scaleY = 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();  

    //旋转代码释放

    CGImageRelease(imageRef);

        return newPic;

    }

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-155-5998-1.html
    相关热词搜索:
    下一篇:定时器