iOS 旋转图片

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

{

longdoublerotate =0.0;

CGRectrect;

floattranslateX =0;

floattranslateY =0;

floatscaleX =1.0;

floatscaleY =1.0;

switch(orientation) {

caseUIImageOrientationLeft:

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;

caseUIImageOrientationRight:

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;

caseUIImageOrientationDown:

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);

CGContextRefcontext =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 旋转图片)