这是一个使用C++/CLI在Windows窗体上的.NET应用程序。我有一张JPEG图片,想要在客户区域中绘制出来以表示一个对象。在某些情况下,比如当用户拖动对象时,我想要以一定的透明度绘制该对象。
有哪些可用的方法可以实现这个功能?
这是一个使用C++/CLI在Windows窗体上的.NET应用程序。我有一张JPEG图片,想要在客户区域中绘制出来以表示一个对象。在某些情况下,比如当用户拖动对象时,我想要以一定的透明度绘制该对象。
有哪些可用的方法可以实现这个功能?
Color pixelColor = bitmap.GetPixel(x,y);
Color transparentPixelColor = MakePixelTransparent(pixelColor);
bitmap.SetPixel(x,y,transparentPixelColor);
MakePixelTransparent()
会在提供的颜色中设置alpha值(类似于获取ARGB值,设置A字节并创建一个新的颜色,以新的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 );
这样可以使图像的某些部分变为透明,从而实现作用。...