天天看点

iOS开发-获取View截图图像

在做ar的时候突然有取图的需求,小记

  1. 先指定图像的大小
UIGraphicsBeginImageContext(view.frame.size);
  1. 在指定的区域绘制图像
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO];
  1. 获取图像上下文
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  1. 关闭图像上下文
UIGraphicsEndImageContext();

只需要4行代码即可以获取到指定View的图像截图。

另外,常用的绘制图像还有另一个方法:

[view.layer renderInContext:UIGraphicsGetCurrentContext()];

下面补充一个方法例子:

+ (UIImage *)getImageViewWithView:(UIView *)view{ 
  UIGraphicsBeginImageContext(view.frame.size); 
  [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO]; 
  UIImage *image =  UIGraphicsGetImageFromCurrentImageContext(); 
  UIGraphicsEndImageContext(); 
  return image;}