ios 屏幕截图tableview多组数据后,再拼接一张图片(logo)

来源:互联网 发布:逆波兰计算器 c语言 编辑:程序博客网 时间:2024/05/21 15:45

先截取tableview,然后再拼一张图片,分享到微信(省略)

// 截取区域图片大小- (UIImage *)snapshotViewImage{    UIImage* image = nil;        /*参数size为新创建的位图上下文的大小     缩放因子,实际上设为0后,系统就会自动设置正确的比例了。     opaque — 透明开关,如果图形完全不用透明,设置为YES以优化位图的存储*/        UIGraphicsBeginImageContextWithOptions(self.ljGoodsSourceListASTableView.view.contentSize, YES, 0.0);        //保存tableview当前的偏移量    CGPoint savedContentOffset = self.ljGoodsSourceListASTableView.view.contentOffset;    CGRect saveFrame = self.ljGoodsSourceListASTableView.frame;        //将collectionView的偏移量设置为(0,0)    self.ljTableView.contentOffset = CGPointZero;    self.ljTableView.frame = CGRectMake(0, 0, self.ljTableView.contentSize.width, self.lljTableView.contentSize.height);        //在当前上下文中渲染出collectionView    [self.ljTableView.layer renderInContext: UIGraphicsGetCurrentContext()];    //截取当前上下文生成Image    image = UIGraphicsGetImageFromCurrentImageContext();        //恢复collectionView的偏移量    self.ljTableView.contentOffset = savedContentOffset;    self.ljTableView.frame = saveFrame;        UIGraphicsEndImageContext();        return image;}// 拼接两张图片- (UIImage *)composeTopImage:(UIImage *)topImage bottomImage:(UIImage *)bottomImage{    //1.创建上下文尺寸    CGSize size = CGSizeMake(kDEVICEWIDTH, topImage.size.height +bottomImage.size.height);    UIGraphicsBeginImageContextWithOptions(size, YES, 0.0);        //2.先把topImage 画到上下文中    [topImage drawInRect:CGRectMake(0, 0, topImage.size.width, topImage.size.height)];    //3.再把小图放在上下文中    [bottomImage drawInRect:CGRectMake(0, topImage.size.height, kDEVICEWIDTH, 140)];        UIImage *resultImg = UIGraphicsGetImageFromCurrentImageContext();//从当前上下文中获得最终图片    UIGraphicsEndImageContext();//关闭上下文        return resultImg;}// 截取图片- (UIImage *)captureImages{    // 第一张图片    UIImage *shareImage1 = [self snapshotViewImage];    // 拼接后图片(第二张)    UIImage *shareImage2 = [self composeTopImage:shareImage1 bottomImage:@"image_selected"];    // 图片转换    //NSData *shareImage3 = UIImagePNGRepresentation(shareImage2);        return shareImage2;}#pragma mark -- 跳转到另外一个页面展示出来- (void)jumpClick:(id)sender{    UIImage *_llImage = [self captureImages];    LJViewController *_ljVc = [[LJViewController alloc]init];    _ljVc.ljimage = _llImage;    [self.navigationController pushViewController:_ljVc animated:YES];}


原创粉丝点击