实时混合UIImages

5

在iOS 7的通知中心中,箭头的实时混合是否可能实现?我想知道是否可以使UIImage与正下方的内容(UIView或CALayer)以柔和的光线进行混合,这样背景图像就可以移动,混合图像将保持在一个位置。

我希望能够使用UIImage,您可以设置blendMode属性为所需的混合模式,例如,imageView.blendMode = kCGBlendModeSoftLight;

我尝试使用GPUImage,但我无法弄清楚如何做到我需要的。任何帮助将不胜感激。

到目前为止,我用于设置UIImage混合模式的代码是这样的;但是,如果背景视图移动,则UIImage上的混合不会更新。

    //blur the background
    GPUImageGaussianBlurFilter *blurFilter = [[GPUImageGaussianBlurFilter alloc] init];
    blurFilter.blurRadiusInPixels = 50.0f;
    blurFilter.blurPasses = 4;
    UIImage *blurredBackground = [blurFilter imageByFilteringImage:[UIImage imageNamed:@"Background.png"]];

    //make the blended images
    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 2.0f);
    CGContextSetInterpolationQuality(UIGraphicsGetCurrentContext(), kCGInterpolationHigh);
    [blurredBackground drawInRect:self.view.bounds blendMode:kCGBlendModeNormal alpha:1.0];

    [[UIImage imageNamed:@"BarLineImage.png"] drawInRect:CGRectMake(0, self.view.bounds.size.height - 31, self.view.bounds.size.width, 1) blendMode:kCGBlendModeSoftLight alpha:1.0];

    [[UIImage imageNamed:@"Equalizer-th.png"] drawInRect:CGRectMake(65, self.view.bounds.size.height - 30, 30, 30) blendMode:kCGBlendModeSoftLight alpha:1.0];
    [[UIImage imageNamed:@"Player-th.png"] drawInRect:CGRectMake(145, self.view.bounds.size.height - 30, 30, 30) blendMode:kCGBlendModeSoftLight alpha:1.0];
    [[UIImage imageNamed:@"Container-th.png"] drawInRect:CGRectMake(225, self.view.bounds.size.height - 30, 30, 30) blendMode:kCGBlendModeSoftLight alpha:1.0];

    UIImage *blendedImages = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

这是代码的截图,以便更好地理解。Screenshot 看起来我需要的样子,但我不能对底部图像下面的内容进行动画处理。我真的需要能够实时混合UIImages和UIViews。

你能更详细地解释一下“背景视图是如何移动”的吗?你是想要对实时视频进行模糊处理,还是只想在模糊生效时屏幕上显示的内容? - ryan cumley
我正在寻找直播视频流的混合。 - maxned
我认为我理解了你的想法,这是一个有趣的想法!对于整个背景模糊的实时视频流,很容易实现,只需将当前正在模糊的UIImage替换为GPUImageVideoCamera,该相机针对模糊滤镜进行操作,该滤镜又针对GPUImageView进行操作,就像示例项目一样。但是你将控件与底层视频混合的想法听起来很吸引人。我有一个通过分支链和一些裁剪来实现这一点的想法。我今晚会试着去做,并看看能否实现。我会告诉你我的进展! - ryan cumley
GPUImageVideoCamera不仅仅适用于实时视频吗?背景不是实际的视频,我想知道这怎么可能工作。 - maxned
1个回答

0

请查看WWDC会议的第226个视频。您可以找到很多关于如何使用新的iOS 7 API进行动画和混合图像的信息。

我意识到我的回答不完整,应该是对问题的评论,但我的声望太低了。

编辑: WWDC 2013会议,视频编号226:在iOS上实现引人入胜的用户界面


如果链接失效,添加视频名称和会话描述将非常有帮助。 - David Brossard
该视频没有介绍混合模式,也没有给出任何关于如何实现实时模糊或混合的示例。 - maxned

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接