iOS截屏代碼

jopen 9年前發布 | 10K 次閱讀 Objective-C IOS 截屏

1.普通界面

    /** 
     *截圖功能 
     */  
    -(void)screenShot{  
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(640, 960), YES, 0);  

        //設置截屏大小  

        [[self.view layer] renderInContext:UIGraphicsGetCurrentContext()];  

        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();  

        UIGraphicsEndImageContext();  

        CGImageRef imageRef = viewImage.CGImage;  
        CGRect rect = CGRectMake(0, 0, 641, SCREEN_HEIGHT + 300);//這里可以設置想要截圖的區域  

        CGImageRef imageRefRect =CGImageCreateWithImageInRect(imageRef, rect);  
        UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRefRect];  


        //以下為圖片保存代碼  

        UIImageWriteToSavedPhotosAlbum(sendImage, nil, nil, nil);//保存圖片到照片庫  

        NSData *imageViewData = UIImagePNGRepresentation(sendImage);  
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  

        NSString *documentsDirectory = [paths objectAtIndex:0];  
        NSString *pictureName= @"screenShow.png";  
        NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:pictureName];  
        [imageViewData writeToFile:savedImagePath atomically:YES];//保存照片到沙盒目錄  

        CGImageRelease(imageRefRect);      



        //從手機本地加載圖片  

        UIImage *bgImage2 = [[UIImage alloc]initWithContentsOfFile:savedImagePath];  


    }  

2.UIScrollView截屏(一屏無法顯示完整)
    /** 
     *截圖 
     */  
    - (void)screenShot{  
        UIImage* image = nil;  
        UIGraphicsBeginImageContext(m_scrollView.contentSize);  

        {  
            CGPoint savedContentOffset = m_scrollView.contentOffset;  
            CGRect savedFrame = m_scrollView.frame;  
            m_scrollView.contentOffset = CGPointZero;  

            m_scrollView.frame = CGRectMake(0, 0, m_scrollView.contentSize.width, m_scrollView.contentSize.height);        [m_scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];  

            image = UIGraphicsGetImageFromCurrentImageContext();       

            m_scrollView.contentOffset = savedContentOffset;  
            m_scrollView.frame = savedFrame;  
        }  
        UIGraphicsEndImageContext();      

        if (image != nil) {  
            NSLog(@"截圖成功!");  

        }  
    }  

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!