이것은 C++/CLI를 사용하는 Windows 양식의 .NET 응용 프로그램입니다. 객체를 나타 내기 위해 내 클라이언트 영역에 페인트 할 JPEG가 있습니다. 사용자가 객체를 드래그하는 경우와 같이 일부 경우에는 투명도가있는 객체를 그립니다..NET에서 프로그래밍 방식으로 설정된 알파 채널로 이미지를 그리는 방법은 무엇입니까?
어떻게 할 수 있습니까?
이것은 C++/CLI를 사용하는 Windows 양식의 .NET 응용 프로그램입니다. 객체를 나타 내기 위해 내 클라이언트 영역에 페인트 할 JPEG가 있습니다. 사용자가 객체를 드래그하는 경우와 같이 일부 경우에는 투명도가있는 객체를 그립니다..NET에서 프로그래밍 방식으로 설정된 알파 채널로 이미지를 그리는 방법은 무엇입니까?
어떻게 할 수 있습니까?
투명도가 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);
작품. 그런 식으로 당신은 또한
아야, 즉 느린 ... GetPixel 및 SetPixel을 사용하여 루핑합니다. 여기에서는 byte [] 또는 int *의 사용을 조사 할 것입니다. http://www.codeproject.com/KB/GDI-plus/pointerlessimageproc.aspx – Dykam
음, 약 3 분 후에 해킹당했습니다. 나는 그것이 금식에 가까운 어느 곳이라도있을 것이라고 주장하지 않았다. – EricSchaefer