2010-03-09 2 views
6

Я хотел бы знать следующее: я добавил папку «Графика» в свой проект и вложил в нее BMP. Теперь я хотел бы загрузить изображение из своего кода, но я не могу понять, как это сделать. Я знаю, что это просто с ресурсами, но есть ли способ, не добавляя изображение в ресурсы? БлагодаряC#: доступ к изображению, добавленному в папку проекта

+0

посмотрите на этот вопрос http://stackoverflow.com/questions/154262/example-code-required-for-how-to-access-embedded-net-image-resources-in-c – IordanTanev

ответ

2

Я как-то задумался об этом, так что я понял это и положил его в blog post. Для примера, это должно быть что-то вроде этого:

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

Не забудьте пометить изображение как внедренный ресурс и распоряжаться изображением, когда сделано так что вы не получаете никакой утечки :)

+0

Спасибо. Что делать, если я оставляю «Контент» как действие «Сборка»? И, пожалуйста, к какой Ассамблее принадлежит принадлежность? Я не могу назвать это. – Petr

+0

DefaultNamespace - это пространство имен, которое вы указали в настройках вашего проекта. По умолчанию используется название вашего проекта. Если вы используете действие сборки контента, я думаю, что файл будет скопирован в ваш выходной каталог. Если вы это сделаете, вам придется использовать 'Image.FromFile (" pathtoimage.bmp ")' или что-то в этом роде. – Svish

+0

Хмм .. Я попытался набрать Assembly. но ничего не появилось. – Petr

1

Чтобы получить ресурс:

myNamespace.Properties.Resources.images.<imagename> 

Вы можете бросить, что к вам типа (или использовать функцию, например FromFile)

0

Вы должны указать на свойства файла, что оно должно быть развернуты при создании приложения:

Копировать в выходной каталог: Скопировать всегда

После этого вы можете получить доступ к файлу с помощью метода Image.FromFile, путь будет таким же, как в вашем проекте.

+1

Если вы сделаете это, это не встроенный ресурс. У вас могут возникнуть серьезные проблемы, если вы не обрабатываете недостающие файлы, когда пользователи просто скопировали exe вместо всей папки. – RvdK

3

вас может загружать изображение непосредственно из файловой системы

Изображение img = Изображение.FromFile ("\ Graphics \ ImageName.bmp");

документация MSDN здесь

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

Очевидно, что вы должны знать, каталог и имя загружаемой из.

Смежные вопросы