iOS 设置图片方向

-(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 设置图片方向)