繁体   English   中英

从UIView检索UIImage

[英]Retrieve UIImage from UIView

我需要从MKMapViewUIView )创建一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM