开发者

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 withou开发者_运维百科t adding the image into resources? Thanks


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


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.


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)


You should specify on the file properties that it must be deployed when building the application :

Copy to Output Directory : Copy always

You can then access the file using the Image.FromFile method, the path will be the exact same one as in your project.


I used something like this.. got it in a YouTube tutorial video.

return new BitmapImage(new Uri($"pack://application:,,,/Images/imageFile.png"));
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜