我们在开发中经常需要使用截屏功能或者把某个view生成一张图片的功能,还有可能需要拼接在一起组成一张大图,另外有可能给一张大图添加水印图等。
屏幕截图
屏幕截图和view截成图一样,只是把对应的view换成window就行,示例代码如下
UIGraphicsBeginImageContextWithOptions([UIApplication sharedApplication].keyWindow.bounds.size, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIApplication sharedApplication].keyWindow .layer renderInContext:context];
UIImage *image= UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
这样截图出来的图片没有顶部状态栏,因为状态栏并不在keyWindow对应的view上,所以我们要加上相应的UIStatueBar
UIGraphicsBeginImageContextWithOptions([UIApplication sharedApplication].keyWindow.bounds.size, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIApplication sharedApplication].keyWindow .layer renderInContext:context];
//添加顶部状态栏
UIView *statusBarView = [[[UIA