【问题标题】:Load 2 images in 1 picturebox - C#在 1 个图片框中加载 2 个图像 - C#
【发布时间】:2014-03-26 15:55:24
【问题描述】:

如何在一个 PictureBox 中加载 2 张图片?

这是一个例子:

http://postimg.org/image/l78kth897/

非常感谢。

【问题讨论】:

  • 尝试 2 个重叠的图片框 stackoverflow.com/questions/4623165/…
  • 叠加两个图片框。 PictureBox 只能有一个来源,因此要在其中获取两张图像,您必须进行大量的图像处理。
  • @LordTakkera:这完全不正确。在一个 PictureBox 中显示两个图像需要 2 或 3 行代码。
  • @dotNET,不知道 Paint 方法。我不确定这算作“加载”两个图像(因为您是在强制绘制,而不是像正常一样设置源),但这是一个很好的解决方案。感谢您的信息!
  • 对。即使通过“加载”他的意思是他想要保存两个源,他需要做的只是从PictureBox(或Control)派生并定义Image 类型的两个公共属性。然后他可以再次遵循DrawImage 路线并将它们显示在OnPaint() 过载中。我猜这将是 15 行左右的简单代码。

标签: c# winforms image picturebox


【解决方案1】:

您可以使用Graphics.DrawImage() 在 PictureBox 或任何其他控件内的任何位置绘制任何图像。如果您正在编写自己的控件,请覆盖 OnPaint()。如果您想使用现有的 PictureBox,只需使用其 Paint 事件即可:

e.Graphics.DrawImage(YourImageObjectHere, ...);  
e.Graphics.DrawImage(YourSecondImageObjectHere, ...);

GDI+ 已经支持透明通道,因此如果您的图像具有透明区域,它们将像您发布的示例图像一样绘制。 DrawImage() 有十几个重载,使用它们可以控制图像绘制方式的多个方面。最简单的方法是获取图像对象和要绘制的位置。

请记住,图像对象是System.Drawing.Image 或其派生类之一的对象。如果您只有图像的路径,则应首先使用Image.FromFile() 从该图像文件创建一个 Image 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-11
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多