请选择 进入手机版 | 继续访问电脑版

安富莱电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 165|回复: 1
收起左侧

stm32F429 LTDC 外设透明度混合总结

[复制链接]

3

主题

27

帖子

33

积分

新手上路

积分
33
QQ
发表于 2019-1-8 22:14:48 | 显示全部楼层 |阅读模式
最近在写  HAL 库 LTDC 外设的驱动,在配置 LTDC 的层时,有很多透明度混合的设置,做了些测试,将结果记录下来HAL 库中需要设置透明度混合的主要是3个地方:
pLayerCfg.Alpha 0 为全透明 ,255 为全不透明
pLayerCfg.BlendingFactor1 混合因子1
pLayerCfg.BlendingFactor2 混合因子2
首先来说 pLayerCfg.Alpha,这个值主要代表当前层和下层(或者背景层)混合时的透明度,无论当前层设置的颜色格式是 RGB 或者 ARGB,都起作用
计算公式如下所示:
合成后的颜色 = (pLayerCfg.Alpha / 255)* 当前层颜色 + (1 - pLayerCfg.Alpha / 255) * 背景色

pLayerCfg.BlendingFactor1 混合因子1 和 pLayerCfg.BlendingFactor2 混合因子2 都是在当前层的颜色是 ARGB 时才起作用

当 pLayerCfg.BlendingFactor1 被配置为 LTDC_BLENDING_FACTOR1_PAxCA 后,上面的计算公式中 (pLayerCfg.Alpha / 255) 变为 (像素透明度 x pLayerCfg.Alpha / 255)
当 pLayerCfg.BlendingFactor2 被配置为 LTDC_BLENDING_FACTOR2_PAxCA 后,上面的计算公式中 (1 - pLayerCfg.Alpha / 255) 变为 (1 - 像素透明度 x pLayerCfg.Alpha / 255)
回复

使用道具 举报

5276

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
42674
QQ
发表于 2019-1-9 00:17:06 | 显示全部楼层
谢谢楼主分享。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|安富莱电子论坛 ( 鄂ICP备09023347号,公安机关备案号42010602000201 )

GMT+8, 2019-2-19 15:52 , Processed in 0.162106 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表