gpt4 book ai didi

c# - 我如何在 GDI+ 中将一个位图图像叠加到另一个位图图像上?

转载 作者:太空狗 更新时间:2023-10-30 00:46:33 29 4
gpt4 key购买 nike

我使用 GDI+ 制作了热图 bmp,我想将它叠加在我的 bmp map 上。我已经将这两个 bmp 保存到磁盘,它们看起来不错,我只需要一种方法将它们放在一起。有什么办法可以做到这一点,也许使用 Graphics 对象?透明度/阿尔帕是如何参与的?

我是 GDI 编程的新手,所以请尽可能具体。


好的 - 这是一个答案。在某些时候,我需要了解 GDI+ 的工作原理...

我无法解决透明度问题,但这行得通。它只是将非白色像素从叠加层复制到 map :

        for (int x = 0; x < map.Width; x++)
for (int y = 0; y < map.Height; y++) {
Color c = overlay.GetPixel(x, y);
if ((c.A != 255) || (c.B != 255) || (c.G != 255) || (c.R != 255))
map.SetPixel(x, y, c);

最佳答案

这应该可以完成工作...

此时,您要叠加到主图像上的图像将位于主图像的左上角,因此 new Point(0,0)。但是,您可以更改此设置以将图像定位到您想要的任何位置。

void SuperimposeImage()
{
//load both images
Image mainImage = Bitmap.FromFile("PathOfImageGoesHere");
Image imposeImage = Bitmap.FromFile("PathOfImageGoesHere");

//create graphics from main image
using (Graphics g = Graphics.FromImage(mainImage))
{
//draw other image on top of main Image
g.DrawImage(imposeImage, new Point(0, 0));

//save new image
mainImage.Save("OutputFileName");
}


}

关于c# - 我如何在 GDI+ 中将一个位图图像叠加到另一个位图图像上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966316/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com