UIGraphicsBeginImageContext 和 UIGraphicsBeginImageContextWithOptions 区别

这两个方法都是绘图时候用的方法,功能上这两个方法是一样的。但是就图片质量上这两个参数还是有一定区别的。
下面就分析下这两个方法:(先从UIGraphicsBeginImageContextWithOptions 说起)

  1. UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)
  • 第一个参数是想要渲染的图片的尺寸;
  • 第二个参数用来指定所生成图片的背景是否为不透明,指定为YES得到的图片背景将会是黑色,反之NO表示是透明的;
  • 第三个参数表示位图的缩放比例,如果设置为 0,表示让图片的缩放因子根据屏幕的分辨率而变化。和 [UIScreen mainScreen].scale相等的。
    关于第三个参数可以看官方文档说明:

The scale factor to apply to the bitmap. If you specify a value of 0.0, the scale factor is set to the scale factor of the device’s main screen.

  1. UIGraphicsBeginImageContext(CGSize size)仅有一个参数,传递的是想要渲染位图的尺寸。但是在官方文档上面也有说明。

    This function is equivalent to calling the
    UIGraphicsBeginImageContextWithOptions function with the
    opaque parameter set to NO and a scale factor of 1.0.

    大致的意思就是这个方法和 UIGraphicsBeginImageContextWithOptions(CGSize size, NO, 1.0) 是等价的。

总结:一般我们用的都是UIGraphicsBeginImageContextWithOptions(CGSize size, YES, 0) 因为这样得到的图片失真很少,比较接近原图像,而 UIGraphicsBeginImageContext()这个方法得到的图片质量相对来说比较差。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • UIGraphicsBeginImageContext 创建一个基于位图的上下文(context),并将其设置为当...
    李前途阅读 8,478评论 1 4
  • UIGraphicsBeginImageContext创建一个基于位图的上下文(context),并将其设置为当前...
    宋进锋阅读 9,009评论 1 2
  • 化我的思恋 为阵阵微风 轻轻地吹 缓缓的来到你面前 将我所有心事向你呢喃 化我的思恋 为片片落叶 ...
    曹琦琦阅读 1,643评论 1 4
  • 2016.10.29 2016.11.9 2016.11.20 2016.11.27 -- 新入的上盆 2016....
    猫与多肉阅读 1,549评论 0 0
  • 我想每一个柔缎般的脸庞下都有一只跃动的精灵,我们每一个人都以一种独特又主流的方式生活着。有那么一群人,他们被称为...
    墨小沫ab阅读 1,868评论 0 1

友情链接更多精彩内容