我正在尝试覆盖两个位图
我有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”和“B”都是相同格式的相同高度相同宽度但是当我保存图像时,看起来好像只画了“B”。
这是因为“B”alpha通道值占主导地位吗?
我认为首先绘制“B”,然后“A”,带有alpha通道值〜200-250的“A”像素将位于“B”之上
我一定错过了什么......有什么建议吗?
答案 0 :(得分:2)
在“B”之前绘制位图“A”似乎就是答案。这么简单,我在这个小小的改变之前做了很多尝试。希望这有助于其他人