- (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;
}