UIImageで取得できる画像とUIImage.CGImageで取得できる画像が上下逆転してしまいます。原因はUIKitとCoreGraphicsで、座標系のY軸が反転しているからだそうです(takiuchiさん談)。
下記を参考にしました:
http://blog.logichigh.com/2008/06/05/uiimage-fix/
###UIImage.CGImageをrorateする
rails>>
UIImage *sampleImage = [UIImage imageNamed:@"image.png"];
CGRect rect = CGRectMake(0,0, sampleImage.size.width, sampleImage.size.height);
//create the context
UIGraphicsBeginImageContext(rect.size);
CGContextRef i_context = UIGraphicsGetCurrentContext();
CGContextDrawImage(i_context, rect, sampleImage.CGImage);
CGAffineTransform transform = CGAffineTransformRotate(transform, M_PI);
CGContextConcatCTM(i_context, transform);
UIImage *rotatedImage = UIGraphicsGetImageFromCurrentImageContext();
CGImageRef sampleImageRef = [rotatedImage CGImage];
//release the context
UIGraphicsEndImageContext();
CGContextRelease(i_context);
<<--
ちなみに、Quartz 2Dなどは昔の名前らしく、今は、CoreGraphicsと呼ばれています。最近はCoreImage, CoreGraphics, CoreAnimationのようにCoreシリーズで統一しているようです。