Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C#: Accessing image added to project folder

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

like image 618
Petr Avatar asked Mar 09 '10 08:03

Petr


People also ask

What C is used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...

What is the full name of C?

In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr.

Why is C named so?

Quote from wikipedia: "A successor to the programming language B, C was originally developed at Bell Labs by Dennis Ritchie between 1972 and 1973 to construct utilities running on Unix." The creators want that everyone "see" his language. So he named it "C".

What is C language?

C is a structured, procedural programming language that has been widely used both for operating systems and applications and that has had a wide following in the academic community. Many versions of UNIX-based operating systems are written in C.


3 Answers

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 :)

like image 160
Svish Avatar answered Oct 01 '22 01:10

Svish


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.

like image 37
Justin Avatar answered Oct 01 '22 00:10

Justin


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)

like image 20
RvdK Avatar answered Oct 01 '22 00:10

RvdK