首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在.NET中叠加图像

如何在.NET中叠加图像
EN

Stack Overflow用户
提问于 2012-10-25 19:57:42
回答 2查看 19K关注 0票数 8

我有一个.png图像,我希望覆盖在一个基础图像上。

我的叠加图像只包含一条红色的斜线。我需要得到的红线叠加在同一坐标的基础图像,因为它是在叠加图像。

问题是我没有坐标位置。

我需要用C#以编程方式找到它。叠加图像将始终是透明的或白色背景。从叠加图像中查找直线坐标的代码是什么?

EN

回答 2

Stack Overflow用户

发布于 2012-10-25 21:46:33

您可以创建新图像,首先渲染背景图像,然后在其上渲染叠加图像。因为叠加有alpha通道,并且线被放置在它应该在的地方(我的意思是线的顶部和左侧有不透明的空间),你不需要坐标。插图代码:

代码语言:javascript
复制
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);
票数 15
EN

Stack Overflow用户

发布于 2012-10-25 21:31:24

如果你使用的是WPF,为什么不为你的覆盖图使用一个path而不是一个简单的线条呢?这将允许它缩放到任何大小,并具有操纵其尺寸的方法。

如果您使用的是Winforms,那么您可以利用一些similar graphics drawing capabilities。获取图像的尺寸应该很容易,假设您使用的是PictureBox,以下属性应该足够了:

代码语言:javascript
复制
myPictureBox.Top
myPictureBox.Bottom
myPictureBox.Left
myPictureBox.Right

同样,对于WPF图像:

代码语言:javascript
复制
myImage.Margin
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13068065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档