是否可以在MediaElement
或MediaPlayer
(C#WPF)中播放具有透明度的视频
在背面有背景,所以背景会出现在视频的透明区域?
我研究了答案但找不到答案,我希望你能帮助我。
答案 0 :(得分:1)
我担心MediaElement不会保留必要的信息。但是,颜色键控可能是最简单的解决方案。
您需要创建一个视频,其中透明部分变为127,127,127(RGB),然后在着色器中将它们更改为透明。
着色器看起来像这样:
sampler2D input : register(s0);
bool equals(float f1, float f2)
{
float f = abs(f1 - f2);
return f < 0.0001f;
}
float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 result = tex2D(input, uv);
if( (equals(result.r, 127)) &&
(equals(result.g, 127)) &&
(equals(result.b, 127)) )
{
// make transparent?!
result.r = 0;
result.g = 0;
result.b = 0;
result.a = 0;
}
return result;
}