2009-08-15 2 views

답변

2

투명도가 50 % 인 두 번째 이미지를 만들려고합니다. System.Drawing.Bitmap로서 당신은 수와 픽셀 (getPixel와,와 setPixel)을 설정할 수 있습니다

Color pixelColor = bitmap.GetPixel(x,y); 
Color transparentPixelColor = MakePixelTransparent(pixelColor); 
bitmap.SetPixel(x,y,transparentPixelColor); 

MakePixelTransparent() A- 설정되는 색상의 알파 값합니다 (ARGB 값을 받고 같은를 설정합니다 바이트를 만들고 새 Argb 값에서 새 색상을 만듭니다.

내가 ... (그래도 난하지 않았다)

편집을 시도 할 것 그게 문제 : 나는 호기심에서, 지금 그것을 시도 :

Bitmap bitmap = new Bitmap("YourImageFile.jpg"); 
bitmap.MakeTransparent(); 
for (int y = 0; y < bitmap.Height; y++) { 
    for (int x = 0; x < bitmap.Width; x++) { 
     Color pixelColor = bitmap.GetPixel(x, y); 
     Color transparentPixelColor = Color.FromArgb(pixelColor.ToArgb() & 0x7fffffff); 
     bitmap.SetPixel(x, y, transparentPixelColor); 
    } 
} 
e.Graphics.DrawImage(bitmap, 10, 10); 

작품. 그런 식으로 당신은 또한

+1

아야, 즉 느린 ... GetPixel 및 SetPixel을 사용하여 루핑합니다. 여기에서는 byte [] 또는 int *의 사용을 조사 할 것입니다. http://www.codeproject.com/KB/GDI-plus/pointerlessimageproc.aspx – Dykam

+0

음, 약 3 분 후에 해킹당했습니다. 나는 그것이 금식에 가까운 어느 곳이라도있을 것이라고 주장하지 않았다. – EricSchaefer