是否可以通过编程方式使用C#/ WinRT为Windows Phone 8.1中的WriteableBitmap添加透明度?
我在我的项目中引用了WriteableBitmapEx库来进行图像大小调整和blitting,这非常有用,它也可能有助于添加透明度或Alpha通道/图层,但文档不是很透彻
最好不要使用WriteableBitmapEx来实现这个方法,但是无论什么工作......我已经搜索了一段时间,而且关于基本解决方案的信息不多。
这个想法是用户可以选择图像或图形,并将其固定到开始屏幕,应用程序会使背景颜色透明......可能是白色或黑色,甚至是使用第一个X / Y协调图像背景的颜色。
答案 0 :(得分:0)
您是否尝试过使用WriteableBitmapEx的透明色?例如,要清除整个位图使用:
writeableBitmap = new WriteableBitmap(200, 200, 96, 96, PixelFormats.Bgra32, null);
writeableBitmap.Clear(Colors.Transparent);
答案 1 :(得分:0)
如果您想自己编辑特定像素,则需要访问PixelBuffer
属性。我确定WriteableBitmapEx会一直这样做。我的工具包here也是如此。我现在无法回想起像素格式,但我认为它像ARGB或P-ARGB?我可能在这里很困惑,但基本上你的像素缓冲区是一个数组,它包含所有像素行的数据,每个像素由4个字节定义,因此2x2位图将具有类似ARGBARGBARGBARGB字节的位置,其中每个字母是其中之一四个像素分量值(0-255,0表示无颜色,255表示所有RGB为白色)。 R为红色,G为绿色,B为蓝色,A为Alpha - 不透明度或透明度。在P-或预乘像素格式中 - 出于性能原因(IIRC),所有RGB值都会额外乘以Alpha通道值。
您需要遍历所有像素,并根据您的规则设置ARGB值,以便在需要时添加透明度,可能需要取前预乘和预乘RGB。