Mobin
Mobin

Reputation: 4920

How to retrieve Image from Resources folder of the project in C#

I have some images in Resources folder in my project but I want to change the PictureBox from these resource files of the project.

Upvotes: 13

Views: 56978

Answers (7)

Abu Saeed Sabuj
Abu Saeed Sabuj

Reputation: 1

Now it's Possible

pictureBox.Image = Properties.Resources.yourImagename;

Upvotes: 0

this works for your control too, if you need to call your control by a string or concatenated reference.

Just call the control type first (in this case, a picturebox). Assume i=some number and d=some string:

var i = <some number>;
var d = <some string>;

((PictureBox)this.Controls["pictureBox" + i.ToString()]).Image = (Image)Properties.Resources.ResourceManager.GetObject("dice" + d);

Upvotes: 0

Sayed Abolfazl Fatemi
Sayed Abolfazl Fatemi

Reputation: 3911

Worked for me:

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

Upvotes: 0

Hassan Rahman
Hassan Rahman

Reputation: 5203

Right click on the project. Go to Resources tab. Select the existing option and add the image.

enter image description here

Now access in the code by

Image = Properties.Resources.ImageName

Upvotes: 1

SAQLAIN RAZA
SAQLAIN RAZA

Reputation: 65

Below is the Code to Fetch Image From Resources Folder. Normally we keep images in Resources Folder. but Sometime we have image name only with us. in that case you can Access images from Resources Folder using Image Name only.

Below Code will Demonstrate about it.

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

PbResultImage.Image = (Image)RM.GetObject(YourPictureName);
  • YourAppliacationNameSpace means name of your Application.
  • YourPictureName means the Picture you Want to access from Resources Folder. but Picture name must be without Extension e.g. (PNG, GIF, JPEG etc)

hope i will be beneficial to some one.

Thank you.

Upvotes: 2

Narayan
Narayan

Reputation: 99

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");
    }
}

Upvotes: 2

Daniel LeCheminant
Daniel LeCheminant

Reputation: 51071

Consider using Properties.Resources.yourImage

Properties.Resources contains everything that you've added as a resource (see your project properties, resources tab)

Other than that, if you embed the images as resource in your project, you can get at them by calling GetManifestResourceStream on the assembly that you've embedded the images in, something like

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

Don't forget to mark the image as an embedded resource! (You'll need to set the build action for the image in its properties window)

If you're finding that you keep getting back null from GetManifestResourceStream, you may be giving the wrong name. (It can be hard to get the names right) Call GetManifestResourceNames on the assembly; that will give you back all the resource names, and you can find the one in the list that you need.

Upvotes: 28

Related Questions