将MKMapView转换为UIImage再转换为NSData。

9

针对一个 MKMapView : UIView,我该如何将 mkmapview 的内容转换为 uiimage?

虽然从 mkmapview 中的最终目标(或者说主要目标,如果你知道我的意思)是一个 NSData 变量,然后我可以将其附加到 mimeType 为“image/png”的电子邮件中。

这有点像在任何给定时刻抓取 MKMapview 正在显示的屏幕截图,将其放在 (UIImage)mapImage 上。

NSData *imageData= UIImagePNGRepresentation(mapImage);

有什么建议吗?

提前感谢。


1
小心提醒一下。在处理从显示的地图中获取的内容时要非常谨慎。Google的许可条款限制了您能够对其进行的操作:http://code.google.com/apis/maps/terms.html#section_10_1_3 - Claus Broch
1个回答

11

为什么不尝试这样做(未经测试)?

UIGraphicsBeginImageContext(mapView.frame.size);
[mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *mapImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *mapData = UIImagePNGRepresentation(mapImage);
[mapData writeToFile:[self myFilePath:@"yourMap.png"] atomically:YES];

这是我们希望能够点赞两次的那种情况之一。 - BP.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接