我想要在基本图像上叠加.png图像。
我的叠加图片只包含一条红色斜线。我需要将红线覆盖在基本图像上,与叠加图像中的坐标相同。
问题是我没有坐标位置。
我需要用C#以编程方式找到它。叠加图像将始终是透明的或白色背景。从叠加图像中找到线坐标的代码是什么?
答案 0 :(得分:11)
您可以创建新图像,首先渲染背景图像,然后在其上渲染叠加图像。由于叠加具有alpha通道,并且线位于应该放置的位置(我的意思是在线的顶部和左侧有不透明的空间),因此不需要坐标。插图代码:
Image imageBackground = Image.FromFile("bitmap1.png");
Image imageOverlay = Image.FromFile("bitmap2.png");
Image img = new Bitmap(imageBackground.Width, imageBackground.Height);
using (Graphics gr = Graphics.FromImage(img))
{
gr.DrawImage(imageBackground, new Point(0, 0));
gr.DrawImage(imageOverlay, new Point(0, 0));
}
img.Save("output.png", ImageFormat.Png);
答案 1 :(得分:0)
如果您使用的是WPF,为什么不使用path作为叠加层而不是图像(如果它是简单的线条)?这将允许它缩放到任何大小,并具有操纵其尺寸的方法。
如果您使用的是Winforms,则可能会使用一些similar graphics drawing capabilities。获取图像的尺寸应该很容易,假设您正在使用PictureBox,以下属性就足够了:
myPictureBox.Top
myPictureBox.Bottom
myPictureBox.Left
myPictureBox.Right
同样,对于WPF图像:
myImage.Margin