System.Drawing.Graphics.DrawImage
将一个图像粘贴到另一个图像上。但是我找不到透明度选项。
我已经在图像中绘制了所有想要的东西,我只想使其半透明(alpha透明度)
最佳答案
没有“透明”选项,因为您要执行的操作称为Alpha混合。
public static class BitmapExtensions
{
public static Image SetOpacity(this Image image, float opacity)
{
var colorMatrix = new ColorMatrix();
colorMatrix.Matrix33 = opacity;
var imageAttributes = new ImageAttributes();
imageAttributes.SetColorMatrix(
colorMatrix,
ColorMatrixFlag.Default,
ColorAdjustType.Bitmap);
var output = new Bitmap(image.Width, image.Height);
using (var gfx = Graphics.FromImage(output))
{
gfx.SmoothingMode = SmoothingMode.AntiAlias;
gfx.DrawImage(
image,
new Rectangle(0, 0, image.Width, image.Height),
0,
0,
image.Width,
image.Height,
GraphicsUnit.Pixel,
imageAttributes);
}
return output;
}
}
Alpha Blending
关于.net - 如何使System.Drawing.Image半透明?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2201016/