美文网首页
二维码中心logo简单合成

二维码中心logo简单合成

作者: 惊蛰_e3ce | 来源:发表于2019-12-22 20:51 被阅读0次

可以图片绘制两个图片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];
}

相关文章

网友评论

      本文标题:二维码中心logo简单合成

      本文链接:https://www.haomeiwen.com/subject/ltzonctx.html