2016-11-24 2 views
0

System.Drawing을 사용하여 모노 4.6.1을 사용하고 있습니다.이 두 이미지 (imgur album)를 오버레이하고 싶습니다. 그러나 완성 된 결과는 this처럼 보입니다. 첫 번째 이미지에는 약간 흰색이 나타납니다. 렌더링 전에 배경색을 설정하면 cardBack 이미지의 투명한 부분이 올바르게 혼합되지 않습니다.모노 System.Drawing, 투명 픽셀 반 회색 전환

 const int width = 764; 
     const float s = width/764; 

     var cardBack = new Bitmap(@"assets/mHunter.png"); 
     var cardArt = new Bitmap(@"CardArt/Full/AT_007.png"); 


     using (var bmp = new Bitmap(cardBack.Width, cardBack.Height, PixelFormat.Format32bppArgb)) 
     using (var gr = Graphics.FromImage(bmp)) { 

      //Draw card art clipped by type 
      var clippingRegion = CreateEllipseRegion(s); 
      //gr.SetClip(clippingRegion); 
      //ctx.drawImage(t, 0, 0, t.width, t.height, 100 * s, 75 * s, 590 * s, 590 * s); 
      gr.DrawImage(cardArt, 100 * s, 75 * s, 590 * s, 590 * s); 
      //gr.ResetClip(); 

      gr.DrawImage(cardBack,0, 0); 

      bmp.Save("/tmp/result.png", ImageFormat.Png); 
     } 
+0

예상됩니다. 백그라운드에서 부과하는 이미지는 투명성 키를 사용하지 않는 것 같습니다. 이것은 모노 나 gdi +에서는 문제가 아니지만 이미지가 어떻게 오버랩 될 수 있는지에 대한 문제입니다. – MrPaulch

+0

그래서 투명 부분을 핫 핑크와 같은 것으로 교체하고 투명하게 설정해야합니까? – Lett1

+0

8 개 (Bitmap.MakeTranspatent 확인) 또는 알파 블렌딩 사용 – MrPaulch

답변

0

그것은 cardBack 이미지가 GIMP를 이용하여 RGB로 변경 후, 인덱스 컬러 모드를 사용하는 것이 판명, 그것은 올바르게 조화.