首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将两张图片合并为一张,就像instagram一样

将两张图片合并为一张,就像instagram一样
EN

Stack Overflow用户
提问于 2014-03-09 22:10:52
回答 1查看 29关注 0票数 0

我正在试着想办法得到一个像instagram这样的两个图像视图的单一图像坑,这就是两个图像。提前谢谢。

代码语言:javascript
复制
 UIImageView *photoImageView = [[UIImageView alloc] initWithFrame:CGRectMake(20.0f, 42.0f, 280.0f, 280.0f)];
[photoImageView setBackgroundColor:[UIColor blackColor]];
[photoImageView setImage:self.image];
[photoImageView setContentMode:UIViewContentModeScaleAspectFit];

//Add overlay
UIImage *overlayGraphic = [UIImage imageNamed:@"chiu"];
UIImageView *overlayGraphicView = [[UIImageView alloc] initWithImage:overlayGraphic];
overlayGraphicView.frame = CGRectMake(30, 100, 260, 200);
[photoImageView addSubview:overlayGraphicView];
EN

回答 1

Stack Overflow用户

发布于 2014-03-09 22:18:57

我不确定您是否可以仅使用UIImageView控件直接完成此操作。我认为你将不得不进入低级的绘图例程来完成这项工作。

选项1(不推荐,只是尝试回答原始问题):

你有没有试过把覆盖UIImageView放在“主”UIImageView的上面,并把它的不透明度设置为小于1的值(比如0.4)?这是一个粗糙的技巧,但它可能会让你有所收获。

选项2(可能是更好的旅行路径):

创建一个图像上下文,然后在上面绘制您的“基础”和“覆盖”图像。然后,您将拥有一个可以输出的UIImage,并且只需要1个UIImageView。类似这样的东西(注意:这是一个基本的大纲;您将需要添加大量时间才能准确地从中获得您想要的东西!):

代码语言:javascript
复制
UIImage *baseImage = [UIImage imageNamed:@"base"];
UIImage *overlayImage = [UIImage imageNamed:@"overlay"];

UIGraphicsBeginImageContextWithOptions(baseImage.size, NO, 0);

CGContextRef context = UIGraphicsGetCurrentContext();

CGRect rect = CGRectMake(0, 0, baseImage.size.width, baseImage.size.height);

CGContextDrawImage(context, rect, baseImage.CGImage);
CGContextDrawImage(context, rect, overlayImage.CGImage);

UIImage *combined = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22283230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档