我們常用的截圖方法如下所示:
//尺寸是按照
UIGraphicsBeginImageContext(CGSizeMake(100,100 )); //currentView 當前的view 創建一個基於位圖的圖形上下文並指定大小為 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//renderInContext呈現接受者及其子范圍到指定的上下文 UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();//返回一個基於當前圖形上下文的圖片 UIGraphicsEndImageContext();//移除棧頂的基於當前位圖的圖形上下文 UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);//然后將該圖片保存到圖片圖
這個方法比較簡單 一般都用這個方法
但是可能有的對截圖的清晰度要求比較嚴 那么我們需要對這個方法進行修改 如下:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(100,100 ), NO, 0.0); //currentView 當前的view 創建一個基於位圖的圖形上下文並指定大小為 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//renderInContext呈現接受者及其子范圍到指定的上下文 UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();//返回一個基於當前圖形上下文的圖片 UIGraphicsEndImageContext();//移除棧頂的基於當前位圖的圖形上下文 UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);//然后將該圖片保存到圖片圖
主要是UIGraphicsBeginImageContextWithOptions方法發生了變化:
這里應該是ios7及以后設置分辨率的方法
通入下面方法截取的屏幕圖片會比較清晰