[英]Image not rotating correctly
rotateI am trying to rotate my images by 90 degrees. rotateI我试图将图像旋转90度。 It works without the rotate, but when I rotate and translate it doesn't show. 它没有旋转工作,但当我旋转和翻译它不显示。 What am i doing wrong? 我究竟做错了什么?
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"check" ofType:@"jpg"];
UIImage *newImage = [[UIImage alloc] initWithContentsOfFile:filePath];
UIGraphicsBeginImageContext(newImage.size);
//CGContextRef c = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), newImage.size.width, 0);
//CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0, newImage.size.width);
//CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0, -1.0);
CGContextRotateCTM(UIGraphicsGetCurrentContext(), 90);
CGRect imageRect = CGRectMake(0, 0, newImage.size.height, newImage.size.width);
CGContextDrawImage(UIGraphicsGetCurrentContext(), imageRect, newImage.CGImage);
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
ImageView.image = viewImage;
I would suggest using image view and use it's transform like so: 我建议使用图像视图并使用它的变换如下:
UIImage *newImage = [[UIImage alloc] initWithContentsOfFile:filePath];
UIImageView *newImageView = [[UIImageView alloc] initWithImage:newImage];
newImageView.transform = CGAffineTransformMakeRotation(M_PI_2);
You should do: 你应该做:
UIGraphicsBeginImageContext(newImage.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextRotateCTM (context, 90* M_PI/180); //Degrees should be in radians.
[newImage drawAtPoint:CGPointMake(0, 0)];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
Good luck. 祝好运。
UPDATE: 更新:
Actually, this is a duplicate from How to Rotate a UIImage 90 degrees? 实际上,这是如何将UIImage旋转90度的重复?
The problem was my define statement and I needed to flip the image. 问题是我的定义声明,我需要翻转图像。 Here is the completed code: ( The image has to be perfect because an OCR process the image and if it's even a little off, it gets rejected. 这是完成的代码:(图像必须是完美的,因为OCR处理图像,如果它甚至有点关闭,它会被拒绝。
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSaveGState(c);
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"check" ofType:@"jpg"];
UIImage *newImage = [[UIImage alloc] initWithContentsOfFile:filePath];
NSLog(@"Rect width: %@", NSStringFromCGSize(newImage.size) );
UIGraphicsBeginImageContext(newImage.size);
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0, newImage.size.width);
CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0, -1.0);
CGContextTranslateCTM( UIGraphicsGetCurrentContext(), 0.5f * newImage.size.width, 0.5f * newImage.size.height ) ;
CGContextRotateCTM( UIGraphicsGetCurrentContext(), radians( -90 ) ) ;
CGRect imageRect = CGRectMake(-(newImage.size.height* 0.5f) + 200, -(0.5f * newImage.size.width) + 200 , newImage.size.height - 200, newImage.size.width - 200);
CGContextDrawImage(UIGraphicsGetCurrentContext(), imageRect, newImage.CGImage);
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
ImageView.image = viewImage;
CGContextRestoreGState(c);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.