scrollView轉(zhuǎn)化image 并保存到本地相冊

項目開發(fā)中的一個需求 ,需要將不在屏幕中的內(nèi)容也要截圖保存到本地相冊 ,于是我的思路是:將下面的大的scrollView轉(zhuǎn)化為image,再將image保存相冊即可。以下是我的代碼:

pragma mark 把scrollView轉(zhuǎn)換成image

- (UIImage *)captureScrollView:(UIScrollView *)scrollView{
    UIImage* image = nil;
//  第一個參數(shù)表示區(qū)域大小。第二個參數(shù)表示是否是非透明的,一般傳no。第三個參數(shù)就是屏幕密度了,關(guān)鍵就是第三個參數(shù)
UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, NO, [UIScreen mainScreen].scale);
    {
        CGPoint savedContentOffset = scrollView.contentOffset;
        CGRect savedFrame = scrollView.frame;
        scrollView.contentOffset = CGPointZero;
        scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);
        [scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
        image = UIGraphicsGetImageFromCurrentImageContext();
        scrollView.contentOffset = savedContentOffset;
        scrollView.frame = savedFrame;
    }
    UIGraphicsEndImageContext();
    if (image != nil) {
        return image;
    }
    return nil;
}

pragma mark 點擊保存圖片按鈕的實現(xiàn)方法

- (void)saveImageButtonAction:(id)sender{
    NSLog(@"點擊了保存圖片");
    UIImage *image = [self captureScrollView:self.bigView];
    UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}

pragma mark 成功保存圖片到相冊中, 必須調(diào)用此方法, 否則會報參數(shù)越界錯誤

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{
    
    NSLog(@"error == %@",error);
    if (!error) {
        [SVProgressHUD showSuccessWithStatus:@"保存成功"];
    } else {
        [SVProgressHUD showErrorWithStatus:@"保存失敗"];
    }
}

最后說一下我在這里遇到的一個坑:大家在設(shè)置scrollView的ContentSize時 如果設(shè)置寬為0的話,會一直生成image失敗,導(dǎo)致保存不成功。寬度改成屏幕的寬度即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件,我們平時使用的軟件中到處都可以看到它的影子,類似...
    liudhkk閱讀 9,297評論 3 38
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,346評論 4 61
  • 前天在和朋友見面的路上開始看這本書,看了三分之一就覺得樂的不行,在此之前我一直都覺得搞經(jīng)濟的人都是特別嚴謹特別嚴肅...
    亦如是閱讀 488評論 0 0
  • 小米最近在臺灣發(fā)生了兩件事:瞞報銷量和收集客戶隱私。不知如何言語。 瞞報銷量好像也出入不大,說說小米為什么收集客戶...
    asker閱讀 1,393評論 0 1
  • 早上,振生發(fā)燒了,昨夜回家正趕上變天,寒邪入侵體內(nèi),受涼發(fā)燒。妻子小雪建議在家針灸處理,振生一臉不屑,"針灸能治病...
    一顆綠心閱讀 330評論 0 0

友情鏈接更多精彩內(nèi)容