繁体   English   中英

在ASP.NET的WebResource中嵌入位图

[英]Embedding a Bitmap in ASP.NET's WebResource

我正在ASP.NET自定义Web服务器控件中动态生成System.Drawing.Bitmap ,然后我希望将此位图作为WebResource的一部分提供,因为我不想将其保存在宿主计算机上。

有没有一种方法可以指示ASP.NET将生成的System.Drawing.Bitmap作为其WebResource的一部分提供服务? (因此使其成为“嵌入式资源”)

使用HTTP处理程序。 处理程序基本上是从服务器请求具有指定扩展名的资源时执行的一段代码。 由于需要动态生成的图像,因此可以在处理程序的代码中执行此操作,并将其作为响应返回。 嵌入将不起作用,因为您只能嵌入静态信息。 以下是一些链接:

我在几个没有HTTP处理程序的ASP.NET项目中做到了这一点。

假设您有一个名为“ Fingerprint.jpg”的图像,并将其放在其名称空间为“ MyNamespace”的Web控件库中的一个名为“ Images”的子文件夹中。 实际上,图像的计算名称空间将是“ 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);

然后,您可以使用该imageUrl值作为图像控件或HTML IMG标签中的图像URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM