- CGFloat angleInRadians = -90 * (M_PI / 180);
- CGFloat width = CGImageGetWidth(imgRef);
- CGFloat height = CGImageGetHeight(imgRef);
-
- CGRect imgRect = CGRectMake(0, 0, width, height);
- CGAffineTransform transform = CGAffineTransformMakeRotation(angleInRadians);
- CGRect rotatedRect = CGRectApplyAffineTransform(imgRect, transform);
-
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
- CGContextRef bmContext = CGBitmapContextCreate(NULL,
- rotatedRect.size.width,
- rotatedRect.size.height,
- 8,
- 0,
- colorSpace,
- kCGImageAlphaPremultipliedFirst);
- CGContextSetAllowsAntialiasing(bmContext, FALSE);
- CGContextSetInterpolationQuality(bmContext, kCGInterpolationNone);
- CGColorSpaceRelease(colorSpace);
-// CGContextTranslateCTM(bmContext,
-// +(rotatedRect.size.width/2),
-// +(rotatedRect.size.height/2));
- CGContextScaleCTM(bmContext, rotatedRect.size.width/rotatedRect.size.height, 1.0);
- CGContextTranslateCTM(bmContext, 0.0, rotatedRect.size.height);
- CGContextRotateCTM(bmContext, angleInRadians);
-// CGContextTranslateCTM(bmContext,
-// -(rotatedRect.size.width/2),
-// -(rotatedRect.size.height/2));
- CGContextDrawImage(bmContext, CGRectMake(0, 0,
- rotatedRect.size.width,
- rotatedRect.size.height),
- imgRef);
-
- CGImageRef rotatedImage = CGBitmapContextCreateImage(bmContext);
- CFRelease(bmContext);
- [(id)rotatedImage autorelease];
-
- return rotatedImage;
+ CGFloat angleInRadians = -90 * (M_PI / 180);
+ CGFloat width = CGImageGetWidth(imgRef);
+ CGFloat height = CGImageGetHeight(imgRef);
+
+ CGRect imgRect = CGRectMake(0, 0, width, height);
+ CGAffineTransform transform = CGAffineTransformMakeRotation(angleInRadians);
+ CGRect rotatedRect = CGRectApplyAffineTransform(imgRect, transform);
+
+ CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
+ CGContextRef bmContext = CGBitmapContextCreate(NULL,
+ rotatedRect.size.width,
+ rotatedRect.size.height,
+ 8,
+ 0,
+ colorSpace,
+ kCGImageAlphaPremultipliedFirst);
+ CGContextSetAllowsAntialiasing(bmContext, FALSE);
+ CGContextSetInterpolationQuality(bmContext, kCGInterpolationNone);
+ CGColorSpaceRelease(colorSpace);
+ // CGContextTranslateCTM(bmContext,
+ // +(rotatedRect.size.width/2),
+ // +(rotatedRect.size.height/2));
+ CGContextScaleCTM(bmContext, rotatedRect.size.width/rotatedRect.size.height, 1.0);
+ CGContextTranslateCTM(bmContext, 0.0, rotatedRect.size.height);
+ CGContextRotateCTM(bmContext, angleInRadians);
+ // CGContextTranslateCTM(bmContext,
+ // -(rotatedRect.size.width/2),
+ // -(rotatedRect.size.height/2));
+ CGContextDrawImage(bmContext, CGRectMake(0, 0,
+ rotatedRect.size.width,
+ rotatedRect.size.height),
+ imgRef);
+
+ CGImageRef rotatedImage = CGBitmapContextCreateImage(bmContext);
+ CFRelease(bmContext);
+ [(id)rotatedImage autorelease];
+
+ return rotatedImage;