Встраивание растрового изображения в веб-ресурс ASP.NET - PullRequest
0 голосов
/ 06 апреля 2010

Я генерирую System.Drawing.Bitmap на лету в пользовательском веб-элементе управления ASP.NET, а затем хочу использовать это растровое изображение как часть WebResource, поскольку не хочу сохранять его на хост-компьютере.

Есть ли способ проинструктировать ASP.NET для обслуживания сгенерированного System.Drawing.Bitmap как части его WebResource? (поэтому делает его «встроенным ресурсом»)

Ответы [ 2 ]

2 голосов
/ 06 апреля 2010

Использовать обработчик HTTP. Обработчик - это, по сути, фрагмент кода, выполняемый, когда с вашего сервера запрашивается ресурс с указанным расширением. Поскольку вам нужно динамически генерируемое изображение, вы должны сделать это в коде для обработчика и вернуть его в качестве ответа. Встраивание не будет работать, потому что вы можете встраивать только статическую информацию. Вот несколько ссылок:

1 голос
/ 07 апреля 2012

Я делал это в нескольких проектах ASP.NET без обработчика HTTP.

Допустим, у вас есть изображение с именем "Fingerprint.jpg", и вы помещаете его в подпапку с именем "Images" в вашей библиотеке веб-управления, пространство имен которой "MyNamespace". По сути, вычисленное пространство имен вашего изображения будет «MyNamespace.Images». Пометьте это изображение с помощью действия сборки «Встроенный ресурс».

Теперь давайте предположим, что в этой библиотеке веб-элемента управления есть класс веб-элемента управления с именем «MyNamespace.SampleWebControl».

В AssemblyInformation.cs я добавил что-то подобное для каждого изображения:

[сборка: System.Web.UI.WebResource ("MyNamespace.Images.Fingerprint.jpg", "image / jpg")]

где в приведенном выше примере изображение Fingerpint.jpg хранится в папке с именем «Images» прямо под корневым каталогом библиотеки веб-управления.

Тогда в коде страницы asp.net вы можете использовать что-то вроде этого:

string imgName = "MyNamespace.Images.Fingerprint.jpg";
Type ctrlType = typeof(MyNamespace.SampleWebControl);
string imageUrl = Page.ClientScript.GetWebResourceUrl(ctrlType, imgName);

И затем вы можете использовать это значение imageUrl в качестве URL-адреса изображения в элементе управления изображением или теге HTML IMG.

...