如何在C#中从项目的Resources文件夹中检索Image

时间:2009-02-28 19:00:38

标签: c# winforms resources

我在项目的资源文件夹中有一些图像,但我想从项目的这些资源文件中更改图片框

5 个答案:

答案 0 :(得分:25)

考虑使用Properties.Resources.yourImage

Properties.Resources包含您作为资源添加的所有内容(请参阅项目属性,资源标签)

除此之外,如果您将图像作为资源嵌入到项目中,则可以通过在嵌入图像的程序集上调用GetManifestResourceStream来获取它们,例如

Stream imgStream = 
    Assembly.GetExecutingAssembly().GetManifestResourceStream(
    "YourNamespace.resources.ImageName.bmp");
pictureBox.Image = new Bitmap(imgStream);

不要忘记将图像标记为嵌入式资源! (您需要在其属性窗口中为图像设置构建操作)

如果您发现从GetManifestResourceStream继续回复null,您可能会给出错误的名称。 (可能很难得到正确的名称)在集会上调用GetManifestResourceNames;这将返回所有资源名称,您可以在列表中找到所需的名称。

答案 1 :(得分:2)

string img = null;

private void btnShow_Click(object sender, EventArgs e)
{
    string imgName;
    img = textBox1.Text;
    imgName = "images/" + img + ".jpg";

    if (imgName == null)
    {
        MessageBox.Show("no photo");
    }
    else if (imgName != null)
    {
        this.picBox1.Image = Image.FromFile("images/" + img + ".jpg");
    }
}

答案 2 :(得分:1)

以下是从资源文件夹中获取图像的代码。通常我们将图像保存在资源文件夹中。但是有时我们只有我们的图像名称。在这种情况下,您只能使用图像名称从资源文件夹访问图像。

以下代码将展示它。

private System.Resources.ResourceManager RM = new System.Resources.ResourceManager("YourAppliacationNameSpace.Properties.Resources", typeof(Resources).Assembly);

PbResultImage.Image = (Image)RM.GetObject(YourPictureName);
  • YourAppliacationNameSpace 表示您的应用程序的名称。
  • YourPictureName 表示您要从资源文件夹访问的图片。但图片名称必须没有扩展名,例如(PNG,GIF,JPEG等)
希望我对某个人有益。

谢谢。

答案 3 :(得分:0)

萨拉姆。

为我工作:

(Bitmap) Properties.Resources.ResourceManager.GetObject("ImageName");

答案 4 :(得分:0)

右键单击该项目。转到资源选项卡。选择现有选项并添加图像。

enter image description here

现在通过

访问代码
Image = Properties.Resources.ImageName