C#: Accessing image added to project folder

25,755

Solution 1

I once wondered about this too, so I figured it out and put it in a blog post. For your example, it should be something like this:

var a = Assembly.GetExecutingAssembly(); // Or another Get method if you need to get it from some other assembly

var image = Image
    .FromStream(a.GetManifestResourceStream("DefaultNameSpace.Graphics.image.bmp"));

Remember to mark the image as an Embedded Resource and to dispose of the image when done so you don't get any leakage :)

Solution 2

You can load an image directly from the filesystem

Image img = Image.FromFile( "\Graphics\ImageName.bmp" );

The MSDN documentation is here

http://msdn.microsoft.com/en-us/library/system.drawing.image.fromfile.aspx

Obviously you would need to know the directory and name you are loading from.

Solution 3

To get an resource:

myNamespace.Properties.Resources.images.<imagename>

You can cast that to the type you need (or use a function for example FromFile)

Share:
25,755
Petr
Author by

Petr

Updated on July 17, 2022

Comments

  • Petr
    Petr almost 2 years

    I would like to know following: I added the folder "Graphics" into my project and stuck a BMP in it. Now I would like to load the image from my code, but I cannot figure out how. I know its simple with resources but is there a way without adding the image into resources? Thanks