C# 位图。是否在Silverlight中透明?

C# 位图。是否在Silverlight中透明?,c#,.net,silverlight,silverlight-4.0,C#,.net,Silverlight,Silverlight 4.0,如何使位图图像的所有白色像素在Sivlerlight中透明 这是使用常规位图执行的操作: //Bitmap with a White background: var bmp = new Bitmap(100, 100); using (var g = Graphics.FromImage(bmp)){ g.Clear(Color.White); g.DrawString("String", new Font(FontFamily.GenericSerif,10.0f), new

如何使位图图像的所有白色像素在Sivlerlight中透明

这是使用常规位图执行的操作:

//Bitmap with a White background:
var bmp = new Bitmap(100, 100);
using (var g = Graphics.FromImage(bmp)){
    g.Clear(Color.White);
    g.DrawString("String", new Font(FontFamily.GenericSerif,10.0f), new SolidBrush(Color.Red), 30, 30);
}

//I want to make White transparent like Bitmap.MakeTransparent does:
bmp.MakeTransparent(Color.White);
在Silverlight中,我如何做这样的事情

var bmp = new BitmapImage(new Uri("http://www.google.com/images/logos/ps_logo2.png"));
bmp.MakeTransparent(Color.White);

我是Silverlight的新手,但我希望以后能将其绘制到画布或其他地方,因此如果需要,它可以是着色器或类似的东西。

如果需要反复应用效果,着色器是完美的,但有更多选项:

  • 在您喜爱的绘画程序中预处理图像。(速度最快,灵活性较低)
  • 使用可写位图预处理图像。(最慢、更灵活)
  • 使用着色器。(快速,非常灵活)
  • 对于着色器,请查看