为UIImageView拍摄屏幕截图

3

我想截取视图中特定部分(具体来说是一个ImageView)的屏幕截图,有这样的机会吗?


你想要截取图像视图的屏幕截图还是为图像视图创建屏幕截图?我知道你的英语可能不太好,但“of”和“for”之间有区别,根据你的意思答案也会不同。例如,如果你想要截取图像视图的屏幕截图,为什么不直接使用图像视图中的图像而非试图截图呢? - Jasarien
抱歉,ImageView 的截图不可用。 - Icoder
1个回答

3

看起来你需要使用renderInContext方法。

// Size of the result rendered image
CGSize targetImageSize = CGSizeMake(100, 100);
// Check for retina image rendering option
if (NULL != UIGraphicsBeginImageContextWithOptions) UIGraphicsBeginImageContextWithOptions(targetImageSize, NO, 0);
else UIGraphicsBeginImageContext(targetImageSize);

CGContextRef context = UIGraphicsGetCurrentContext();
// The view to be rendered
[[yourImageView layer] renderInContext:context];
// Get the rendered image
UIImage *original_image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

谢谢你的代码。我觉得我的问题没有表述清楚。我正在使用两个ImageView,一个在另一个上面。我想要截取这两个ImageView的屏幕截图。 - Icoder
1
是的。在UIView上添加这两个图像视图,并渲染该视图。 - EmptyStack
假设UiImageView的大小为768x1024,我需要截取位于UIImageView中心的200x200矩形的屏幕截图。我需要先转换CTM吗? - msk

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