Встраивать растровое изображение в Webresource Asp.net
-
24-09-2019 - |
Вопрос
Я генерирую System.Drawing.Bitmap
На мухе в пользовательском веб-сервере ASP.NET пользовательских веб-сервера, а затем я хочу служить этому растрому как часть Webresource, потому что я не хочу сохранять его на хостинговом компьютере.
Есть ли способ проинструктировать ASP.NET служить сгенерированным System.Drawing.Bitmap
Как часть это Webresource? (Поэтому делает его «встроенным ресурсом»)
Решение
Используйте HTTP-обработчик. Обработчик в основном является кусок кода, выполненный, когда на вашем сервере запрашивается ресурс с указанным расширением. Поскольку вы хотите динамически сгенерированное изображение, вы сделаете это в коде для обработчика и вернуть его как ответ. Встраивание не будет работать, потому что вы можете только встроить статическую информацию. Вот некоторые ссылки:
- http://www.15seconds.com/issue/020417.htm.
- http://support.microsoft.com/kb/308001.
- http://www.developerfusion.com/article/4643/implementing-http-handlers-in-aspnet/
- http://www.michaelflanakin.com/articles/net/Net1x/implementinghttpandlers/tabid/173/default.aspx.
- http://www.csharpfriends.com/articles/getarticle.aspx?articliclics=392.
Другие советы
Я сделал это в нескольких проектах ASP.NET без HTTP-обработчика.
Скажем, у вас есть изображение с именем «FingerPrint.jpg», и вы поместите его в подпапку с именем «Изображения» в вашей библиотеке веб-контроля, чьей пространства имен которых является «MyMameseSpace». Эффективно вычисленное пространство имен вашего изображения было бы «MyNamespace .Images». Отметьте это изображение с помощью строить действие «Встроенный ресурс».
Теперь давайте предположим, что в этой библиотеке веб-контроля у вас есть класс веб-управления с именем «MyNamespace.sampleWControl».
В CassOminformation.cs Я добавил что-то вроде этого для каждого изображения:
Сборка: System.Web.ui.webrisource («MyNamespace.Images.fingerPrint.jpg», «Image / JPG»)]
Где в примере над изображением Die Fingerpint.jpg сохраняется в папке с именем «Изображения», прямо под корневым каталогом библиотеки веб-контроля.
Тогда в кодоме ASP.NET страницы вы можете использовать что-то вроде этого:
string imgName = "MyNamespace.Images.Fingerprint.jpg";
Type ctrlType = typeof(MyNamespace.SampleWebControl);
string imageUrl = Page.ClientScript.GetWebResourceUrl(ctrlType, imgName);
И тогда вы можете использовать это значение ImageURL в качестве URL-адреса изображения в управлении изображениями или тегом HTML IMG.