• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 使用 GPUImageChromaKeyFilter 的视频在透明 GPUImageView 中播放时有色调?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:29:01 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个纯绿色背景的视频,我正在尝试使用 GPUImageChromaKeyFilter 使其透明。

当我有清晰的播放器 View 颜色时,结果是视频不是真正透明的,而是给背景着色:

Tint on clear

当我将背景改为白色时,绿色背景消失了,但显然 View 不透明:

No tint on white

我做错了什么?

我的代码是:

let movie = GPUImageMovie(URL: url)

let filter = GPUImageChromaKeyFilter()
filter.setColorToReplaceRed(0, green: 1, blue: 0)
movie.addTarget(filter)

let playerView = GPUImageView()
playerView.backgroundColor = UIColor.clearColor()
playerView.setBackgroundColorRed(0, green: 0, blue: 0, alpha: 0)

let trinity = (movieFile, filter, playerView)

filter.addTarget(playerView)
movie.startProcessing()

我正在存储电影、过滤器和 View 以避免 ARC 在退出范围时释放它们,我将 View 添加到正确的 super View 并使用自动布局定位它。

我使用的视频是 h264 视频 - https://dl.dropboxusercontent.com/u/1400954/Coin.mp4



Best Answer-推荐答案


我得到了这个工作。解决方法是使用 GPUImageChromaKeyBlendFilter。 它通过将第一个源中 setColorToReplaceRed 中指定颜色的像素替换为第二个源中的像素来混合两个源。

所以我制作了一个带有透明 UIImage 的 GPUImagePicture 并将过滤器作为目标添加到它。您可以使用透明 PNG 或构建 UIImage 并在代码中用透明填充它(空的 UIImage 将不起作用!)

现在一切正常!

Working!

代码是

let filter = GPUImageChromaKeyBlendFilter()
filter.setColorToReplaceRed(0, green: 1, blue: 0)

let movieFile = GPUImageMovie(URL: url)
movieFile.addTarget(filter)

let backgroundImage = UIImage(named: "MTransparent")
let sourcePicture = GPUImagePicture(image: backgroundImage, smoothlyScaleOutput: true)
sourcePicture.addTarget(filter)
sourcePicture.processImage()

let playerView = GPUImageView()
playerView.backgroundColor = UIColor.clearColor()
filter.addTarget(playerView)

movieFile.startProcessing()

关于ios - 使用 GPUImageChromaKeyFilter 的视频在透明 GPUImageView 中播放时有色调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33244347/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap