我正在ASP.NET自定义Web服务器控件中动态生成System.Drawing.Bitmap
,然后我想将此位图作为WebResource的一部分提供服务,因为我不想将其保存在宿主计算机上。
有没有办法指示ASP.NET将生成的System.Drawing.Bitmap
作为其WebResource的一部分提供服务?(因此使其成为“嵌入式资源”)
发布于 2010-04-06 20:49:21
使用HTTP处理程序。处理程序基本上是在从服务器请求具有指定扩展名的资源时执行的一段代码。由于您需要一个动态生成的图像,因此需要在处理程序的代码中执行此操作,并将其作为响应返回。嵌入不会起作用,因为您只能嵌入静态信息。以下是一些链接:
发布于 2012-04-07 05:30:28
我在几个没有HTTP处理程序的ASP.NET项目中做到了这一点。
假设您有一个名为"Images“的图像,您将其放在web控件库中一个名为"Fingerprint.jpg”的子文件夹中,该子文件夹的名称空间为"MyNamespace“。实际上,您的图像的计算名称空间将是"MyNamespace.Images“。使用构建操作"Embedded Resource“标记该图像。
现在让我们假设在这个web控件库中,您有一个名为"MyNamespace.SampleWebControl“的web控件类。
在AssemblyInformation.cs中,我为每个图像添加了如下内容:
汇编: System.Web.UI.WebResource("MyNamespace.Images.Fingerprint.jpg","image/jpg")
其中,在上面的示例中,Fingerpint.jpg图像存储在web控件库根目录下名为"Images“的文件夹中。
然后,在asp.net页面的代码幕后,您可以使用如下代码:
string imgName = "MyNamespace.Images.Fingerprint.jpg";
Type ctrlType = typeof(MyNamespace.SampleWebControl);
string imageUrl = Page.ClientScript.GetWebResourceUrl(ctrlType, imgName);
然后,您可以在Image Control或HTML IMG标记中使用该URL值作为图像的imageUrl。
https://stackoverflow.com/questions/2584742
复制相似问题