[英]Retrieve UIImage from UIView
我需要从MKMapView
( UIView
)创建一个UIImage
。 但是我不想覆盖整个UIView
而只是覆盖其中的一部分,确切地说,我希望图像为200x200像素,并且图像的中心应该是地图上的用户位置。
我创建了一个UIView
类别,并尝试了以下操作,但无法正常工作。 我得到一个图像,但是用户位置不是图像的中心。 我究竟做错了什么?
- (UIImage*)captureView:(MKMapView *)map
{
CGPoint newCenter = [map convertCoordinate:map.userLocation.coordinate toPointToView:map];
CGRect rect = CGRectMake(newCenter.x-100.0, newCenter.y-100.0, 200.0, 200.0);
NSLog(@"%f,@%f",rect.origin.x,rect.origin.y);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
尽管我的NSLog
坐标正确,但此刻图像始终从左上角开始。
您应该对上下文应用转换,以在渲染之前将所需内容移动到正确的位置。
CGContextTranslateCTM(context, -rect.origin.x, -rect.origin.y);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.