ios android 截屏 分享,iOS截屏并修改截图然后分享的功能实现

/**

* 截取当前屏幕 并修改

*

* @return NSData **/

- (UIImage *)imageWithScreenshot

{

CGSize imageSize=CGSizeZero;

UIInterfaceOrientation orientation=[UIApplication sharedApplication].statusBarOrientation;if(UIInterfaceOrientationIsPortrait(orientation))

imageSize=[UIScreen mainScreen].bounds.size;elseimageSize=CGSizeMake([UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width);

UIGraphicsBeginImageContextWithOptions(imageSize, NO,0);

CGContextRef context=UIGraphicsGetCurrentContext();for (UIWindow *window in[[UIApplication sharedApplication] windows])

{

CGContextSaveGState(context);

CGContextTranslateCTM(context, window.center.x, window.center.y);

CGContextConcatCTM(context, window.transform);

CGContextTranslateCTM(context,-window.bounds.size.width * window.layer.anchorPoint.x, -window.bounds.size.height *window.layer.anchorPoint.y);if (orientation ==UIInterfaceOrientationLandscapeLeft)

{

CGContextRotateCTM(context, M_PI_2);

CGContextTranslateCTM(context,0, -imageSize.width);

}else if (orientation ==UIInterfaceOrientationLandscapeRight)

{

CGContextRotateCTM(context,-M_PI_2);

CGContextTranslateCTM(context,-imageSize.height, 0);

}else if (orientation ==UIInterfaceOrientationPortraitUpsideDown) {

CGContextRotateCTM(context, M_PI);

CGContextTranslateCTM(context,-imageSize.width, -imageSize.height);

}if([window respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)])

{

[window drawViewHierarchyInRect:window.bounds afterScreenUpdates:YES];

}else{

[window.layer renderInContext:context];

}

CGContextRestoreGState(context);

}

UIImage*image =UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();//修改图片

NSData *imageData =UIImagePNGRepresentation(image);

UIImage*LastImage =[UIImage imageWithData:imageData];

UIImage*img = [UIImage imageNamed:@"ico_nursery.png"];

CGImageRef imgRef=img.CGImage;

CGFloat w=CGImageGetWidth(imgRef);

CGFloat h=CGImageGetHeight(imgRef);//以1.png的图大小为底图

UIImage *img1 =LastImage;

CGImageRef imgRef1=img1.CGImage;

CGFloat w1=CGImageGetWidth(imgRef1);

CGFloat h1=CGImageGetHeight(imgRef1);//以1.png的图大小为画布创建上下文

UIGraphicsBeginImageContext(CGSizeMake(w1, h1 + 100));

[img1 drawInRect:CGRectMake(0, 0, w1, h1)];//先把1.png 画到上下文中

[img drawInRect:CGRectMake(10, h1 + 10, 80, 80)];//再把小图放在上下文中

UIImage *resultImg = UIGraphicsGetImageFromCurrentImageContext();//从当前上下文中获得最终图片

UIGraphicsEndImageContext();//关闭上下文

returnresultImg;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值