asdfg.jpg
前言:今天給大家介紹一個比較實用的小功能--保存
View
為高清圖片到相冊沃呢,可能有些朋友已經(jīng)知道怎么做的徘层,但還是有大部分不知道的朋友窄坦。
首先,給大家說一下一般的保存View
為圖片到相冊
// 設置繪制圖片的大小
UIGraphicsBeginImageContext(_saveView.bounds.size);
// 繪制圖片
[_saveView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// 保存圖片到相冊 如果需要獲取保存成功的事件第二和第三個參數(shù)需要設置響應對象和方法春瞬,該方法為固定格式柴信。
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
這樣的方法雖然可以快速實現(xiàn),但是保存的圖片比較模糊宽气,清晰度不夠高随常。
下面是保存View
為高清圖片到相冊
// 設置繪制圖片的大小
UIGraphicsBeginImageContextWithOptions(_saveView.bounds.size, NO, 0.0);
// 繪制圖片
[_saveView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// 保存圖片到相冊 如果需要獲取保存成功的事件第二和第三個參數(shù)需要設置響應對象和方法,該方法為固定格式萄涯。
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
大家可以看到绪氛,只是換了一個繪制圖片的方法,多了兩個參數(shù)涝影。其中第二個參數(shù)表示是否是非透明的枣察。如果需要顯示半透明效果,需要傳NO燃逻,否則傳YES序目。不過我所嘗試了YES和NO所出來的效果沒什么區(qū)別,第三個參數(shù)就是屏幕密度了伯襟,關鍵就是第三個參數(shù) [UIScreen mainScreen].scale猿涨。此方法所保存的圖片的清晰度確實有了很大的提高。
保存圖片成功調(diào)用的方法
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
if (error) {
// 保存失敗
} else {
// 保存成功
}
}
注意:由于是保存圖片到相冊姆怪,所以是要訪問系統(tǒng)相冊的叛赚,所以需要在info.plist文件中里邊添加字段:Privacy - Photo Library Usage Description
最后,希望能夠幫到有需要的朋友們稽揭,愿我們能夠一起學習進步俺附,在開發(fā)的道路上越走越順利!