ios view轉(zhuǎn)圖片


方法一:View的大小不大于手機(jī)屏幕
#pragma mark - 方法一:View的大小不大于手機(jī)屏幕
- (UIImage *)GetmakeImageWithView:(UIView *)view andWithSize:(CGSize)size
{
    // 下面方法,第一個(gè)參數(shù)表示區(qū)域大小。第二個(gè)參數(shù)表示是否是非透明的。如果需要顯示半透明效果,需要傳NO,否則傳YES。第三個(gè)參數(shù)就是屏幕密度了,關(guān)鍵就是第三個(gè)參數(shù) [UIScreen mainScreen].scale。
    UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

方法二:View的大小大于手機(jī)屏幕
#pragma mark - 方法二:View的大小大于手機(jī)屏幕
- (UIImage *) snapshotWithScrollView:(UIScrollView *)scrollView
{
    UIImage * image = nil;
    UIGraphicsBeginImageContext(scrollView.contentSize);
    
    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;
}

截取view中某個(gè)區(qū)域生成一張圖片
#pragma mark - 截取view中某個(gè)區(qū)域生成一張圖片
- (UIImage *)shotWithView:(UIView *)view scope:(CGRect)scope
{
    CGImageRef imageRef = CGImageCreateWithImageInRect([self GetmakeImageWithView:view andWithSize:view.bounds.size].CGImage, scope);
    UIGraphicsBeginImageContext(scope.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGRect rect = CGRectMake(0, 0, scope.size.width, scope.size.height);
    CGContextTranslateCTM(context, 0, rect.size.height);//下移
    CGContextScaleCTM(context, 1.0f, -1.0f);//上翻
    CGContextDrawImage(context, rect, imageRef);
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    CGImageRelease(imageRef);
    return image;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 7.1 壓縮圖片 一、基礎(chǔ)知識(shí) 1、圖片的格式 jpg:最常見(jiàn)的圖片格式。色彩還原度比較好,可以支持適當(dāng)壓縮后保持...
    AndroidMaster閱讀 2,553評(píng)論 0 13
  • 先放效果: 前言 首先分析一下需求:將一個(gè)圖片顯示在屏幕上,并能夠?qū)ζ浞糯蠡蛘咂揭啤S?canvas 畫(huà) bitm...
    summerlyy閱讀 14,766評(píng)論 0 9
  • 【Android 自定義View之繪圖】 基礎(chǔ)圖形的繪制 一、Paint與Canvas 繪圖需要兩個(gè)工具,筆和紙。...
    Rtia閱讀 11,746評(píng)論 5 34
  • 【Android 自定義View之繪圖】 基礎(chǔ)圖形的繪制 一、Paint與Canvas 繪圖需要兩個(gè)工具,筆和紙。...
    maiduoduo閱讀 3,250評(píng)論 0 3
  • iOS 用imageWithContentsOfFile 加載圖片圖片名不帶@2x和@3x,會(huì)找不到圖片,問(wèn)什么不...
    楊大蝦閱讀 5,796評(píng)論 1 3