[英]C# Problem with transparency when drawing a bitmap on another bitmap
我正在尝试在较大的位图上添加一个小位图,但小位图的透明度不透明! 就像不透明度为 50% 一样。
和小图像:
然后结果:
我不明白为什么小图像的背景不是透明而是“粉红色”。
这是我的代码:
Bitmap baseImage;
Bitmap overlayImage;
baseImage = (Bitmap)Image.FromFile(Path.Combine(Directory.GetCurrentDirectory(), @"Assets", "Img", "background_blue.jpg"));
overlayImage = (Bitmap)Image.FromFile(Path.Combine(Directory.GetCurrentDirectory(), @"Assets", "Img", "circle_red.png"));
var finalImage = new Bitmap(overlayImage.Width, overlayImage.Height);
var graphics = Graphics.FromImage(finalImage);
graphics.CompositingMode = CompositingMode.SourceOver;
graphics.DrawImage(baseImage, 0, 0);
graphics.DrawImage(overlayImage, 0, 0);
//save the final composite image to disk
finalImage.Save(Path.Combine(Directory.GetCurrentDirectory(), @"Assets", "Img", "result.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);
你能帮我理解发生了什么吗,我完全迷路了! :D
尝试在您的overlayImage 上使用Bitmap.MakeTransparent()。
我已经将我的项目从 Mac 复制到 Windows,然后我刚刚运行它并且它工作正常。 所以问题只在于 Mac 上的 VS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.