我正在创建一个有趣的项目。
在我的项目中,我正在做的是将面部叠加到物体上,比如我在背景上有脸部图像,我需要在脸部图像上叠加物体(Apple),但它不应该完全重叠但是眼睛,嘴巴功能应该在对象中可见,如url中的图像
到目前为止我做了什么 - 使用AVFoundation我逐帧检测脸部。
接下来我需要叠加两张图片。面部图像和对象,但我需要减少面部对象的alpha分量,使它看起来像苹果说话。
有人可以指导我或提供示例代码,这样我就可以实现相同的叠加效果。
编辑1:
以下是我用来混合两张图片的代码。
UIImage *bottomImage =[UIImage imageNamed:@"face.jpg"];
UIImage *image = imageview.image;
CGSize newSize = CGSizeMake(imageview.frame.size.width, imageview.frame.size.height);
UIGraphicsBeginImageContext( newSize );
// Use existing opacity as is
[bottomImage drawInRect:CGRectMake(0,0,image.size.width,image.size.height)];
// Apply supplied opacity
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.8];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
imageview.image=newImage;
UIGraphicsEndImageContext();
在上面的代码中,我叠加了两张缩小图像alpha的图像,但我不需要这样。我希望减少特定部分,比如我有三个图像,左眼,右眼和嘴,在对象(苹果)中我需要减少alpha仅对象的这三个图像部分而不是整个图像。
答案 0 :(得分:0)
如果它总是一个矩形区域,那么你可以绘制部分:
- draw rect, top rect: ( 0, 0) size (400, 100) - draw rect to the left: ( 0, 100) to (100, 200) - draw rect to the right: (300, 100) to (100, 200) - draw rect, bottom: ( 0, 300) to (400, 100)
------------
| top |
| |
|----------|
| | M | |
|L | | R |
| | | |
|----------|
| bottom |
|----------|
分别绘制所有部件,现在可以分别控制它们。这里的M是你的“主要”部分。
对于非矩形的,您可能需要构建一个蒙版并使用它来创建图像。