硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2160|回复: 1
收起左侧

stm32F429 LTDC 外设透明度混合总结

[复制链接]

4

主题

141

回帖

153

积分

初级会员

积分
153
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)
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2019-1-9 00:17:06 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 05:22 , Processed in 0.038805 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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