为了账号安全,请及时绑定邮箱和手机立即绑定

请问有什么好的融合算法吗?

请问有什么好的融合算法吗?

iOS
潇潇雨雨 2023-04-18 19:15:09
需要做一个调用相机,然后相机带相框的功能,我重写了相机的cameraOverlayView,然后把相框图片的view放在了cameraOverlayView上,照完象后,我需要将照下的照片和相框图融合,请问有什么好的融合算法吗
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

希望能帮到你:

比如说我们现在有两张图片需要合并,是把一个滑稽的帽子放到一个人的头上。这里是两个 UIImage:

UIImage *personImage = [UIImage imageNamed:@"person.jpg"];UIImage *hatImage = [UIImage imageNamed:@"hat.png];

这种情况下我们需要最终合成的图片大小是和 person 一致的,让我们获得我们需要的最终图片的大小:

CGSize finalSize = [personImage size];

然后再搞到 hat 的大小,可能比 person 要小得多:

CGSize hatSize = [hatImage size];

现在我们需要创建一个 graphics context 来画我们的东西:

UIGraphicsBeginImageContext(finalSize);

graphics context 就像一张能让我们画上任何东西的纸。我们要做的第一件事就是把person画上去:

[personImage drawInRect:CGRectMake(0,0,finalSize.width,finalSize.height)];

然后再把 hat 画在合适的位置:

[hatImage drawInRect:CGRectMake(HAT_X_POS,HAT_Y_POS,hatSize.width,hatSize.height)];

接着通过下面的语句创建新的 UIImage :

UIImage *newImage = [UIGraphicsGetImageFromCurrentImageContext();

最后,我们必须得清理并关闭这个我们再也不需要的 context :

UIGraphicsEndImageContext();


查看完整回答
反对 回复 2023-04-21
?
慕慕森

TA贡献1856条经验 获得超17个赞

我比较推崇自己去创建context,1L的方法有时候以前用的时候出现过只获取一半的问题

查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信