使用ARGB和图形c#叠加位图
本文关键字:叠加 位图 图形 ARGB 使用 | 更新日期: 2023-09-27 18:01:45
我正在尝试叠加两个位图
我有2 ARGB (Format32bppArgb)位图。位图"A"具有一些像素区域,其apha通道值为0(透明),其他区域的值范围为~200 - 255。位图"B"像素都有值为255的alpha通道。我把它们每个画成图形,像这样…
Bitmap OverlayBitmaps(Bitmap underlying, Bitmap overlaying)
{
Bitmap finalImage = new Bitmap(underlying.Width, underlying.Height,System.Drawing.Imaging.PixelFormat.Format32bppArgb);
using (Graphics graphics = Graphics.FromImage(finalImage))//get the underlying graphics object from the image.
{
graphics.DrawImage(underlying, new Rectangle(0,0, underlying.Width, underlying.Height));
graphics.DrawImage(overlaying, new Rectangle(0, 0, overlaying.Width, overlaying.Height));
finalImage.Save("C:''test.bmp");
return finalImage;
}
}
"A"answers"B"都是相同的格式,相同的高度和宽度,但当我保存图像时,它看起来好像只有"B"被绘制。
这是因为"B"alpha通道值占主导地位吗?
我认为先画"B",然后画"A","A"的alpha通道值为200-250的像素将位于"B"的顶部
我一定是错过了什么…有什么建议吗?
在"B"之前绘制位图"A"似乎是答案。很简单,在这个小小的改变之前我尝试了很多。希望这篇文章对大家有所帮助