Bitmap.MakeTransparent в Silverlight? - PullRequest
       14

Bitmap.MakeTransparent в Silverlight?

1 голос
/ 26 января 2011

Как я могу сделать все белые пиксели BitmapImage прозрачными в Sivlerlight?

Это то, что вы делаете, используя обычный Bitmap:

//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, но я ожидаю, что буду рисовать это на холсте или что-то позже, так что это может быть шейдер или что-то подобное, если это необходимобыть.

1 Ответ

2 голосов
/ 26 января 2011

Шейдер идеально подходит, если вам нужно, чтобы эффект применялся снова и снова, но есть еще варианты:

  1. Предварительно обрабатывает изображение в вашей любимой программе рисования. (Самый быстрый, менее гибкий)
  2. Предварительная обработка изображения с использованием WriteableBitmap. (Самый медленный, более гибкий)
  3. Используйте шейдер. (Быстро, очень гибко)

Для шейдеров посмотрите этот замечательный инструмент Shazzam

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...