- - (UIImage *)fixOrientation:(UIImage *)aImage {  
 
-     
 
-   
 
-   if (aImage.imageOrientation == UIImageOrientationUp)   
 
-     return aImage;  
 
-     
 
-   
 
-   
 
-   CGAffineTransform transform = CGAffineTransformIdentity;  
 
-     
 
-   switch (aImage.imageOrientation) {  
 
-     case UIImageOrientationDown:  
 
-     case UIImageOrientationDownMirrored:  
 
-       transform = CGAffineTransformTranslate(transform, aImage.size.width, aImage.size.height);  
 
-       transform = CGAffineTransformRotate(transform, M_PI);  
 
-       break;  
 
-         
 
-     case UIImageOrientationLeft:  
 
-     case UIImageOrientationLeftMirrored:  
 
-       transform = CGAffineTransformTranslate(transform, aImage.size.width, 0);  
 
-       transform = CGAffineTransformRotate(transform, M_PI_2);  
 
-       break;  
 
-         
 
-     case UIImageOrientationRight:  
 
-     case UIImageOrientationRightMirrored:  
 
-       transform = CGAffineTransformTranslate(transform, 0, aImage.size.height);  
 
-       transform = CGAffineTransformRotate(transform, -M_PI_2);  
 
-       break;  
 
-     default:  
 
-       break;  
 
-   }  
 
-     
 
-   switch (aImage.imageOrientation) {  
 
-     case UIImageOrientationUpMirrored:  
 
-     case UIImageOrientationDownMirrored:  
 
-       transform = CGAffineTransformTranslate(transform, aImage.size.width, 0);  
 
-       transform = CGAffineTransformScale(transform, -1, 1);  
 
-       break;  
 
-         
 
-     case UIImageOrientationLeftMirrored:  
 
-     case UIImageOrientationRightMirrored:  
 
-       transform = CGAffineTransformTranslate(transform, aImage.size.height, 0);  
 
-       transform = CGAffineTransformScale(transform, -1, 1);  
 
-       break;  
 
-     default:  
 
-       break;  
 
-   }  
 
-     
 
-   
 
-   
 
-   CGContextRef ctx = CGBitmapContextCreate(NULL, aImage.size.width, aImage.size.height,  
 
-                        CGImageGetBitsPerComponent(aImage.CGImage), 0,  
 
-                        CGImageGetColorSpace(aImage.CGImage),  
 
-                        CGImageGetBitmapInfo(aImage.CGImage));  
 
-   CGContextConcatCTM(ctx, transform);  
 
-   switch (aImage.imageOrientation) {  
 
-     case UIImageOrientationLeft:  
 
-     case UIImageOrientationLeftMirrored:  
 
-     case UIImageOrientationRight:  
 
-     case UIImageOrientationRightMirrored:  
 
-       
 
-       CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.height,aImage.size.width), aImage.CGImage);  
 
-       break;  
 
-         
 
-     default:  
 
-       CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.width,aImage.size.height), aImage.CGImage);  
 
-       break;  
 
-   }  
 
-     
 
-   
 
-   CGImageRef cgimg = CGBitmapContextCreateImage(ctx);  
 
-   UIImage *img = [UIImage imageWithCGImage:cgimg];  
 
-   CGContextRelease(ctx);  
 
-   CGImageRelease(cgimg);  
 
-   return img;  
 
- }