【问题标题】:Assign an external image to a Picturebox in Visual Studio 2008 (C#)?将外部图像分配给 Visual Studio 2008 (C#) 中的图片框?
【发布时间】:2011-12-22 01:12:12
【问题描述】:

如何将外部图像分配到 Visual Studio 2008 中的 PictureBox 中?
通常,当我们在 PictureBox 中使用 ChooseImage 时,Visual Studio 会将图像添加到 exe 文件中,这会导致 exe 文件的体积增加,我想从 exe 文件旁边的目录中添加图像。
在 Visual Studio 2008 中可以吗?

附注: 我不想用 C# 代码添加图像,因为 VS2008 在开发时不会显示它。

【问题讨论】:

    标签: c# visual-studio-2008 picturebox


    【解决方案1】:

    我认为您可以使用 Image.FromFile 方法在 C# 代码中执行此操作。只要 C# 代码在窗体/控件的初始化中,它就应该在设计时和运行时都运行。

    【讨论】:

    • 你的意思是,我必须将c#代码添加到InitializeComponent()中?
    • 我已添加此代码this.pictureBox1.Image = Image.FromFile(@"Images\flower4.png");,但它会导致错误!!!
    • 不,您完全不应该修改由设计师生成的InitializeComponent 代码。此行应放在构造函数中此调用之后。你得到什么样的错误?另请参阅我对链接资源的回答。
    • 我不会使用您正在使用的相对文件路径,我会使用完整路径:例如 c:\MyProject\Images\flower4.png。如果您将代码放在 InitializeComponent() 例程中,则计算机可能没有找到正确的位置。
    • 顺便说一句,gaearon 是正确的,因为如果您在设计器中进行任何更改,它可能会在没有警告的情况下删除您在 InitializeComponent() 方法中放置的任何代码。
    【解决方案2】:

    您可以使用链接资源。

    当您添加链接资源时, .resx 文件,用于存储您的项目 资源信息只包括一个 资源文件的相对路径 磁盘。如果您添加图像、视频或 链接的其他复杂文件 资源,您可以使用 您关联的默认编辑器 资源中的该文件类型 设计师。当您添加嵌入式 资源,数据直接存储 在项目的资源 (.resx) 中 文件。字符串只能存储为 嵌入式资源。嵌入式资源。

    MSDN on Linked vs. Embedded Resources

    附:但是我仍然不明白你为什么需要它——即使 .exe 没有变大,整个应用程序包也会变大,不是吗?

    最好的,

    【讨论】:

    • 更大的 exe 文件运行延迟,不是吗?
    • 我不这么认为。但如果你不确定,你可以测量它。
    【解决方案3】:

    如果这是 WinForms,最好将 PictureBox 的 ImageLocation 设置为图像的路径。由设计师执行此操作,以便在设计时显示。

    【讨论】:

      【解决方案4】:

      你可以从Resources获取图片

      pictureBox1.Image = Properties.Resources.[image name];
      

      How to embed and access resources by using Visual C#

      误读了 OP 要求在不使用资源的情况下加载的问题。

      你需要这样做

      Image.FromFile("c:\\image.bmp")

      如果图像是 JPEG,那么您可以将其转换为位图

      Bitmap myJpeg=(Bitmap) Image.FromFile("myJpegPath");

      或,

      System.Drawing.Image loadImg = System.Drawing.Image.FromFile("c:\\image.JPG");
      loadImg.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
      

      【讨论】:

      • 正如我所说我不想使用 Resources ,因为它会增加 exe 文件的体积。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 1970-01-01
      • 2011-11-27
      • 2013-01-15
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      相关资源
      最近更新 更多