我有一个.png图像,我希望覆盖在一个基础图像上。
我的叠加图像只包含一条红色的斜线。我需要得到的红线叠加在同一坐标的基础图像,因为它是在叠加图像。
问题是我没有坐标位置。
我需要用C#以编程方式找到它。叠加图像将始终是透明的或白色背景。从叠加图像中查找直线坐标的代码是什么?
发布于 2012-10-25 21:46:33
您可以创建新图像,首先渲染背景图像,然后在其上渲染叠加图像。因为叠加有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);发布于 2012-10-25 21:31:24
如果你使用的是WPF,为什么不为你的覆盖图使用一个path而不是一个简单的线条呢?这将允许它缩放到任何大小,并具有操纵其尺寸的方法。
如果您使用的是Winforms,那么您可以利用一些similar graphics drawing capabilities。获取图像的尺寸应该很容易,假设您使用的是PictureBox,以下属性应该足够了:
myPictureBox.Top
myPictureBox.Bottom
myPictureBox.Left
myPictureBox.Right同样,对于WPF图像:
myImage.Marginhttps://stackoverflow.com/questions/13068065
复制相似问题