這兩個方法都是繪圖時候用的方法,功能上這兩個方法是一樣的。但是就圖片質(zhì)量上這兩個參數(shù)還是有一定區(qū)別的。
下面就分析下這兩個方法:(先從UIGraphicsBeginImageContextWithOptions 說起)
-
UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale),
- 第一個參數(shù)是想要渲染的圖片的尺寸;
- 第二個參數(shù)用來指定所生成圖片的背景是否為不透明,指定為
YES得到的圖片背景將會是黑色,反之NO表示是透明的; - 第三個參數(shù)表示位圖的縮放比例,如果設置為 0,表示讓圖片的縮放因子根據(jù)屏幕的分辨率而變化。和
[UIScreen mainScreen].scale相等的。
關于第三個參數(shù)可以看官方文檔說明:
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.
-
UIGraphicsBeginImageContext(CGSize size)僅有一個參數(shù),傳遞的是想要渲染位圖的尺寸。但是在官方文檔上面也有說明。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()這個方法得到的圖片質(zhì)量相對來說比較差。