UIImageOrientation problem
<p>How to save image in Landscape mode.
Iam Picking image from camera in landscape mode then scaleAndRotateImage but it get strech 
code for scaleAndRotateImage is:</p>

<pre><code>int kMaxResolution = 420;  

CGImageRef imgRef = image.CGImage;  

CGFloat width = CGImageGetWidth(imgRef);  
CGFloat height = CGImageGetHeight(imgRef);  

CGAffineTransform transform = CGAffineTransformIdentity;  
CGRect bounds = CGRectMake(0, 0, width, height);  
if (width &gt; kMaxResolution || height &gt; kMaxResolution) {  
    CGFloat ratio = width/height;  
    if (ratio &gt; 1) {  
        bounds.size.width = kMaxResolution;  
        bounds.size.height = bounds.size.width / ratio;  
    }  
    else {  
        bounds.size.height = kMaxResolution;  
        bounds.size.width = bounds.size.height * ratio;  
    }  
}  

CGFloat scaleRatio = bounds.size.width / width;  
CGSize imageSize = CGSizeMake(CGImageGetWidth(imgRef), CGImageGetHeight(imgRef));  
CGFloat boundHeight;  
UIImageOrientation orient = image.imageOrientation;  
switch(orient) {  

    case UIImageOrientationUp: //EXIF = 1  
        transform = CGAffineTransformIdentity;  
        break;  

    case UIImageOrientationUpMirrored: //EXIF = 2  
        transform = CGAffineTransformMakeTranslation(imageSize.width, 0.0);  
        transform = CGAffineTransformScale(transform, -1.0, 1.0);  
        break;  

    case UIImageOrientationDown: //EXIF = 3  
        transform = CGAffineTransformMakeTranslation(imageSize.width, imageSize.height);  
        transform = CGAffineTransformRotate(transform, M_PI);  
        break;  

    case UIImageOrientationDownMirrored: //EXIF = 4  
        transform = CGAffineTransformMakeTranslation(0.0, imageSize.height);  
        transform = CGAffineTransformScale(transform, 1.0, -1.0);  
        break;  

    case UIImageOrientationLeftMirrored: //EXIF = 5  
        boundHeight = bounds.size.height;  
        bounds.size.height = bounds.size.width;  
        bounds.size.width = boundHeight;  
        transform = CGAffineTransformMakeTranslation(imageSize.height, imageSize.width);  
        transform = CGAffineTransformScale(transform, -1.0, 1.0);  
        transform = CGAffineTransformRotate(transform, 3.0 * M_PI / 2.0);  
        break;  

    case UIImageOrientationLeft: //EXIF = 6  
        boundHeight = bounds.size.height;  
        bounds.size.height = bounds.size.width;  
        bounds.size.width = boundHeight;  
        transform = CGAffineTransformMakeTranslation(0.0, imageSize.width);  
        transform = CGAffineTransformRotate(transform, 3.0 * M_PI / 2.0);  
        break;  

    case UIImageOrientationRightMirrored: //EXIF = 7  
        boundHeight = bounds.size.height;  
        bounds.size.height = bounds.size.width;  
        bounds.size.width = boundHeight;  
        transform = CGAffineTransformMakeScale(-1.0, 1.0);  
        transform = CGAffineTransformRotate(transform, M_PI / 2.0);  
        break;  

    case UIImageOrientationRight: //EXIF = 8  
        boundHeight = bounds.size.height;  
        bounds.size.height = bounds.size.width;  
        bounds.size.width = boundHeight;  
        transform = CGAffineTransformMakeTranslation(imageSize.height, 0.0);  
        transform = CGAffineTransformRotate(transform, M_PI / 2.0);  
        break;  

    default:  
        [NSException raise:NSInternalInconsistencyException format:@"Invalid image orientation"];  

}  

UIGraphicsBeginImageContext(bounds.size);  

CGContextRef context = UIGraphicsGetCurrentContext();  

if (orient == UIImageOrientationRight || orient == UIImageOrientationLeft) {  
    CGContextScaleCTM(context, -scaleRatio, scaleRatio);  
    CGContextTranslateCTM(context, -height, 0);  
}  
else {  
    CGContextScaleCTM(context, scaleRatio, -scaleRatio);  
    CGContextTranslateCTM(context, 0, -height);  
}  

CGContextConcatCTM(context, transform);  

CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, width, height), imgRef);  
UIImage *imageCopy = UIGraphicsGetImageFromCurrentImageContext();  
UIGraphicsEndImageContext();  

return imageCopy;
</code></pre>

<p>Suggest me the Solution.</p>
