2012-02-28 1 views
8

Я добавил изображение как файл и задал тип как ресурс (см. Снимок экрана) Как вытащить его как массив байтов без использования файлов resx и т. Д.?загрузить ресурс в качестве байтового массива программно

enter image description here

+1

Я не думаю, что вы искали в Интернете, прежде чем спрашивать. http://support.microsoft.com/kb/319292 – Oded

+0

Да, но он не показывает, как получить 'byte []' – katit

ответ

9

Процесс описан в How to embed and access resources by using Visual C#.

По существу это требует отражения, используя класс Assembly.

Stream imageStream = 
      currentAssembly.GetManifestResourceStream("Resources.logo_foot.png"); 

См How to convert an Stream into a byte[] in C#? подробную информацию о том, как получить byte[] от Stream.

+0

Мне пришлось набирать все пространство имен, чтобы заставить его работать. Если у вас есть сомнения, какие у вас ресурсы, вызовите currentAssembly.GetManifestResourceNames() –

1

Если это для веб-сайта вы можете base64 закодировать изображение и добавить его в качестве src в качестве image элемента или в background-image определения в CSS:

http://www.motobit.com/util/base64-decoder-encoder.asp

Примечание Это устранит зависимость наличия файла, хранящегося на сервере, что может быть хорошим или плохим.

7

Вещи еще проще, чем знаки товара в качестве ответа!

Если вы щелкните по файлу в ресурсах и просмотрите окно свойств, вы можете установить тип файла в двоичный. Тогда вы можете получить доступ к ByteArray в коде с простой

var byteArray = Properties.Resources.FileName;

где FileName это имя вашего ресурса.

+2

Использование Visual Studio Express 2010 Мне не удалось изменить тип ресурса PNG, но я переименовал файл в .bin перед добавлением в качестве ресурса и это сработало чудесно! – lapo

+0

Я не вижу возможности изменить тип файла в Visual Studio 2017 –

+0

Вы уверены, что ищете в окне свойств? Я только что проверил в своей установке VS2017, и это определенно есть. –

3

Если вы не используете изображение непосредственно (то есть: от контроля, если ваш проект является для Windows App), то вы можете:

1- изменить расширение файла (то есть: * .jpg.data)

2 добавить «образ» в файл ресурсов RESX

3- доступа массив с помощью: Resources.PathToImages.ResxFileName.ImageName

Примечание: если вы добавляете изображение с расширением неизменным Resx компилятор создает свойство Bitmap вместо байта [] p roperty.

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

  • Нет связанных вопросов^_^