Windows 窗口截图带透明通道
起因
之前发的文章 有一些终端窗口的截图 不半透明的
之前用 kde 的时候 截图工具可以直接截出来 还带窗口装饰
但在 Windows 上的窗口截图似乎是截全屏然后裁剪的
探索
搜一下 windows screenshot with alpha 之类的关键词
结果是
- 直接干不成
- 有一种方法可以”还原”透明度 https://www.interact-sw.co.uk/iangblog/2007/01/30/recoveralpha
原理
根据不同背景时呈现结果不同计算 alpha
假设 alpha 混合是线性的
有
- 背景色:
c0
- 前景色:
c1
- alpha:
a
- 结果:
cr
则
即 前景色和背景色的加权平均
记 c0
为0
时的结果为cb
c0
为1
时的结果为cw
则
代入得
解得
实践
搞两张截图
写点代码
1 |
|
得到 (跑的好慢)
可能看不清 处理一下
反思
- 这里假设了 alpha 混合是线性的 但如果实际上不是呢
- 处理方法复杂过程慢
- 为什么不润回 Linux 呢(就是因为工业软件用不了啊)
Windows 窗口截图带透明通道
https://duzhaokun123.github.io/2023/12/04/windows-screenshot-with-alpha.html