美文网首页基础知识拾遗
UIGraphicsBeginImageContext 和 UI

UIGraphicsBeginImageContext 和 UI

作者: 村里竹竿 | 来源:发表于2017-07-05 10:41 被阅读207次

    这两个方法都是绘图时候用的方法,功能上这两个方法是一样的。但是就图片质量上这两个参数还是有一定区别的。
    下面就分析下这两个方法:(先从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()这个方法得到的图片质量相对来说比较差。

    相关文章

      网友评论

        本文标题:UIGraphicsBeginImageContext 和 UI

        本文链接:https://www.haomeiwen.com/subject/wpgfhxtx.html