zoukankan      html  css  js  c++  java
  • (转)ios截取屏幕代码

    本文转自http://blog.sina.com.cn/s/blog_801997310101a769.html

    截取本区域(self.view):

    UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.width, self.view.frame.size.height));
        [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

    全屏截图:

    UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
        UIGraphicsBeginImageContext(screenWindow.frame.size);
        [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

    以上2种方法真机和模拟器都可以运行.在photo.app里可以看到照片

    苹果最新开放的接口函数(全屏截图),已经有人试过了,不会reject:

    CGImageRef UIGetScreenImage(); 
        CGImageRef img = UIGetScreenImage();
        UIImage* scImage=[UIImage imageWithCGImage:img];
        UIImageWriteToSavedPhotosAlbum(scImage, nil, nil, nil);
    It still works,but only on-device (not in simulator) .

    截图另存为指定名字:

    UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];

    UIGraphicsBeginImageContext(screenWindow.frame.size);
    [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    NSData *screenshotPNG = UIImagePNGRepresentation(screenshot);

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSError *error = nil;
    [screenshotPNG writeToFile:[documentsDirectory stringByAppendingPathComponent:@"screenshot.png"] options:NSAtomicWrite error:&error];

    部分代码来自:http://stackoverflow.com/questions/692464/emailing-full-screen-of-iphone-app

    没有ipad真机截图发布app的可以用此方法做个透明按钮点,哈哈.

    截取本区域(self.view):

    UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.width, self.view.frame.size.height));
        [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

    全屏截图:

    UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
        UIGraphicsBeginImageContext(screenWindow.frame.size);
        [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

    以上2种方法真机和模拟器都可以运行.在photo.app里可以看到照片

    苹果最新开放的接口函数(全屏截图),已经有人试过了,不会reject:

    CGImageRef UIGetScreenImage(); 
        CGImageRef img = UIGetScreenImage();
        UIImage* scImage=[UIImage imageWithCGImage:img];
        UIImageWriteToSavedPhotosAlbum(scImage, nil, nil, nil);
    It still works,but only on-device (not in simulator) .

    截图另存为指定名字:

    UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];

    UIGraphicsBeginImageContext(screenWindow.frame.size);
    [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    NSData *screenshotPNG = UIImagePNGRepresentation(screenshot);

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSError *error = nil;
    [screenshotPNG writeToFile:[documentsDirectory stringByAppendingPathComponent:@"screenshot.png"] options:NSAtomicWrite error:&error];

  • 相关阅读:
    JS DOM基础
    JS 部分常见循环、分支、嵌套练习
    记一些让footer始终位于网页底部的方法
    JS 实现banner图的滚动和选择效果
    JS 部分基础内容总结
    Flex弹性布局基础教程
    My SQL数据库的安装与配置
    网页共用头部和尾部的部分方法
    Unity3d入门 关于unity工具的熟悉
    Unity3d学习 制作地形
  • 原文地址:https://www.cnblogs.com/code-changeworld/p/4749164.html
Copyright © 2011-2022 走看看