2011-01-26 5 views
1

BitlightImage의 모든 흰색 픽셀을 Sivlerlight에서 투명하게 만들려면 어떻게해야합니까? Silverlight의 Bitmap.MakeTransparent?

는 일반 비트 맵 사용 할 것입니다 : 나는 이런 식으로 뭔가 내가 실버에 새로운 해요

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

? : 어떻게해야합니까, 실버 라이트에서

//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); 

을,하지만 난 기대 이것을 캔버스 또는 나중에 무언가로 그리는 것입니다. 그래서 셰이더가 될 필요가 있다면 그렇게 할 수 있습니다.

답변

2

셰이더를 사용하면 효과가 다시 적용하고 다시하지만 더 옵션이 필요한 경우 적합합니다 :

  1. Preproces 좋아하는 페인트 프로그램에서 이미지. (가장 빠르며 유연성이 떨어짐)
  2. WriteableBitmap을 사용하여 이미지를 사전 처리합니다. (가장 천천히, 더 유연함)
  3. 셰이더를 사용하십시오. 쉐이더를 들어

this wonderful tool Shazzam

볼 (고속, 매우 유연)