【问题标题】:How do you create a transparent window using dispmanx on Raspberry Pi?如何在 Raspberry Pi 上使用 dispmanx 创建一个透明窗口?
【发布时间】:2013-07-09 03:06:52
【问题描述】:

我正在开发一个幻灯片应用程序,并使用 SDL 1.2 使用自定义 dispmanx 后端 (https://github.com/vanfanel/SDL12-kms-dispmanx) 和 Pygame 在 omxplayer 之上创建叠加层。

一切正常,分层正确,但我似乎无法在 dispmanx 中制作透明画布而不使我的对象也透明。我的理解是 Pygame 本身无法处理这个问题,由 SDL 来处理 dispmanx 层之间的透明度。

我的目标是在 omxplayer 上方有我的屏幕大小的硬件加速透明画布,我可以在上面画画。

我怀疑除了使用 vc_dispmanx_element_add 中的 alpha 设置之外,还有其他方法可以做到这一点吗? XBMC 使用 dispmanx 并且可以在 omxplayer 之上做不透明的覆盖,所以这必须是可能的。我还查看了 vc_dispmanx_display_set_background,但这似乎只需要 RGB 而不是 alpha。

【问题讨论】:

    标签: sdl pygame raspberry-pi raspbian


    【解决方案1】:

    您可以截取窗口的屏幕截图并将其用作背景,而不是创建透明窗口。为此,我使用 pyscreenshot 拍摄图像(尽管还有其他选项)和

    os.environ['SDL_VIDEO_WINDOW_POS']="0,0"
    

    为了确保窗口每次都在正确的位置,唯一的缺点是如果窗口后面发生变化,窗口将不再透明

    【讨论】:

    • 下面的 omxplayer 层将播放视频,所以很遗憾我认为这不起作用。
    • 很抱歉,我遇到了类似的问题,这是我的解决方案,但我对 omxplayer 了解不多,所以无法提供更多帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2010-10-21
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    相关资源
    最近更新 更多