ios 屏幕截屏

ios屏幕截屏复制代码就可使用
1 首先:导入框架 QuartzCore.frameWork
2 在程序中导入

#import<QuartzCore/QuartzCore.h>

定义一个全局变量

static int ScreenshotIndex=0;
@property (nonatomic, strong)NSString *ScreenshotsPickPath;

3 具体代码

-(void)ScreenShot{
       //这里因为我需要全屏接图所以直接改了
    //    UIGraphicsBeginImageContextWithOptions(CGSizeMake(640, 960), YES, 0);     //设置截屏大小
         UIGraphicsBeginImageContextWithOptions(CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height), YES, 0);     //设置截屏大小 这里设置的是跟屏幕大小
         [[self.view layer] renderInContext:UIGraphicsGetCurrentContext()];
         UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
         UIGraphicsEndImageContext();
         CGImageRef imageRef = viewImage.CGImage;
     //    CGRect rect = CGRectMake(166, 211, 426, 320);//这里可以设置想要截图的区域
         CGRect rect = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);//这里可以设置想要截图的区域
         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= [NSString stringWithFormat:@"screenShow_%d.png",ScreenshotIndex];
         NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:pictureName];
         NSLog(@"截屏路径打印: %@", savedImagePath);
         //这里我将路径设置为一个全局String,这里做的不好,我自己是为了用而已,希望大家别这么写
         [self SetPickPath:savedImagePath];

         [imageViewData writeToFile:savedImagePath atomically:YES];//保存照片到沙盒目录
         CGImageRelease(imageRefRect);
         ScreenshotIndex++;
     }
 //设置路径
 - (void)SetPickPath:(NSString *)PickImage {
         _ScreenshotsPickPath = PickImage;
     }
 //获取路径<这里我就直接用于邮件推送的代码中去了,能达到效果,但肯定有更好的写法>
 - (NSString *)GetPickPath {
         return _ScreenshotsPickPath;
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值