如何在.NET中叠加图像
我有一个.png图像,我希望覆盖在基本图像上。
我的叠加图像只包含一条红色斜线。 我需要将红线覆盖在基本图像上,与叠加图像中的坐标相同。
问题是我没有坐标位置。
我需要用C#以编程方式找到它。 叠加图像将始终是透明的或白色背景。 从叠加图像中找到线坐标的代码是什么?
您可以创建新图像,首先渲染背景图像,然后在其上渲染叠加图像。 由于叠加具有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);
如果您使用的是WPF,为什么不使用叠加路径而不是图像(如果它是简单的线条)? 这将允许它缩放到任何大小,并具有操纵其尺寸的方法。
如果您使用的是Winforms,则可以使用一些类似的图形绘制function 。 获取图像的尺寸应该很容易,假设您正在使用PictureBox,以下属性应该足够:
myPictureBox.Top myPictureBox.Bottom myPictureBox.Left myPictureBox.Right
同样,对于WPF图像:
myImage.Margin