From aedf95a5c89d5dc94884fca0917e3aa60dbccf5d Mon Sep 17 00:00:00 2001 From: "gtm.daemon" Date: Mon, 22 Jun 2009 16:00:51 +0000 Subject: [Author: altse] Use UIImage drawing methods rather than CGContext. This respects the UIImageOrientation unlike CGContext. R=thomasvl DELTA=21 (0 added, 14 deleted, 7 changed) --- iPhone/GTMUIImage+Resize.m | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) (limited to 'iPhone') diff --git a/iPhone/GTMUIImage+Resize.m b/iPhone/GTMUIImage+Resize.m index f93a521..9dd2144 100644 --- a/iPhone/GTMUIImage+Resize.m +++ b/iPhone/GTMUIImage+Resize.m @@ -32,7 +32,6 @@ } CGFloat aspectRatio = imageSize.width / imageSize.height; CGFloat targetAspectRatio = targetSize.width / targetSize.height; - CGRect projectTo = CGRectZero; if (preserveAspectRatio) { if (trimToFit) { @@ -76,25 +75,12 @@ integralRect.size = targetSize; targetSize = CGRectIntegral(integralRect).size; - // iPhone recommended settings. - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGBitmapInfo bitmapInfo = (kCGBitmapByteOrder32Little | - kCGImageAlphaPremultipliedFirst); - - CGContextRef context = CGBitmapContextCreate(nil, // data - targetSize.width, - targetSize.height, - 8, // bitsPerPixel - 0, // bytesPerRow - colorSpace, - bitmapInfo); - CGColorSpaceRelease(colorSpace); - // Produce the image - CGContextDrawImage(context, projectTo, [self CGImage]); - CGImageRef resizedRef = CGBitmapContextCreateImage(context); - CGContextRelease(context); - UIImage *resized = [UIImage imageWithCGImage:resizedRef]; - CGImageRelease(resizedRef); - return resized; + // Resize photo. Use UIImage drawing methods because they respect + // UIImageOrientation as opposed to CGContextDrawImage(). + UIGraphicsBeginImageContext(targetSize); + [self drawInRect:projectTo]; + UIImage* resizedPhoto = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return resizedPhoto; } @end -- cgit v1.2.3