记录项目中遇到的新鲜的未接触过的方法。
前几天遇到一个需要在分享图片(应用内截图)的需求,原先并不知道还可以用代码控制截取应用内区域作为图片保存起来的方法,了解一番后理解并实现。
主要用到的方法如下:
1、UIGraphicsBeginImageContextWithOptions
创建图形上下文的方法,对于此方法官方文档上的解释是:“使用指定的选项创建位图图形上下文。”在网上找资料的时候还看到一种方法 UIGraphicsBeginImageContext ,相比之下后面这个方法少了两个参数,也就是不能指定选项了。
对于第一个参数的理解是,最好创建一个足够包容你的截图内容的尺寸,创建的这个图形上下文的尺寸,是由第一个参数决定的。第二个参数是否透明的BOOL值,第三个参数是比例(不拉伸是1)。
2、CGImageCreateWithImageInRect
实际截图的操作就是这行代码控制的。
这个方法会返回一个CGImageRef类型的变量,下一步可以通过UIImage的类方法以前面的变量作为参数创建一个UIImage。后面的CGRect是真正的截图区域,中间会使用一些方法获取和中间变量,后面贴出完整的截图方法。
如果需要把图片保存起来写进沙盒,把finalimage转成NSData存起来就好了。