二维码中心logo简单合成
2019-12-22 本文已影响0人
惊蛰_e3ce
可以图片绘制两个图片draw合成 也可以renderincontext 控件渲染 也可以截屏
//需要已经显示在屏幕上 snapshotView类似wkwebviewrender无效?
- (void)snapshotDraw:(UIImageView *)imgView{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
UIView *snapshotView = [imgView snapshotViewAfterScreenUpdates:YES];
UIGraphicsBeginImageContextWithOptions(imgView.bounds.size, YES, [UIScreen mainScreen].scale);
[snapshotView drawViewHierarchyInRect:imgView.bounds afterScreenUpdates:YES];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *finalImgView = [[UIImageView alloc]initWithImage:img];
[self.view addSubview:finalImgView];
// UIGraphicsBeginImageContextWithOptions(imgView.bounds.size, YES, [UIScreen mainScreen].scale);
// [imgView drawViewHierarchyInRect:imgView.bounds afterScreenUpdates:YES];
// UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
// UIGraphicsEndImageContext();
// UIImageView *finalImgView = [[UIImageView alloc]initWithImage:img];
// [self.view addSubview:finalImgView];
});
}
- (void)imageDraw{
CGSize size = CGSizeMake(200, 200);
CGSize centerSize = CGSizeMake(30, 30);
UIGraphicsBeginImageContextWithOptions(size, YES, 0);
UIImage *firstImg = [UIImage imageNamed:@"1.jpg"];
[firstImg drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *centerImg = [UIImage imageNamed:@"2.jpg"];
[centerImg drawInRect:CGRectMake((size.width - centerSize.width)*0.5, 0.5*(size.height - centerSize.height), centerSize.width, centerSize.height)];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *finalImgView = [[UIImageView alloc]initWithImage:img];
[self.view addSubview:finalImgView];
}
#pragma mark - 对视图层级有要求
- (void)UIDraw{
UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];
[self.view addSubview:imgView];
imgView.image = [UIImage imageNamed:@"1.jpg"];
UIImageView *logo = [[UIImageView alloc]init];
logo.bounds = CGRectMake(0, 0, 30, 30);
[imgView addSubview:logo];
logo.image = [UIImage imageNamed:@"2.jpg"];
logo.center = CGPointMake(imgView.bounds.size.width*0.5, imgView.bounds.size.height*0.5);
UIGraphicsBeginImageContextWithOptions(imgView.bounds.size, YES, [UIScreen mainScreen].scale);
CGContextRef ref = UIGraphicsGetCurrentContext();
[imgView.layer renderInContext:ref];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *finalImgView = [[UIImageView alloc]initWithImage:img];
[self.view addSubview:finalImgView];
}