2013-10-02 135 views
0

我想知道如何从图像网页控件设置位图?名为Image Web Control的是imgLoader。我曾尝试如何在ASP.NET中将图像Web控件设置为位图?

Bitmap bmp = new Bitmap(imgLoader); 

但是,错误指出,它:

无法从 'System.Web.UI.WebControls.Image' 到 '为System.Drawing.Image' 和转换“的 'System.Drawing.Bitmap.Bitmap(System.Drawing.Image')有一些无效的 参数。

+0

这可能会帮助你http://forums.asp.net/t/1822833.aspx –

回答

2

也许你可以试试

Bitmap bitmap = new Bitmap(Server.MapPath(imgLoader.ImageUrl)); 
+0

非常感谢! –

0

位图构造函数需要图像作为参数。

将“imgLoader”图像投射到System.Drawing.Image并将图像传递给位图。

1

Source

他们是两个完全不同的对象:

  • System.Web.UI.WebControls.Image是有能力控制到 呈现HTML将使浏览器下载并显示 指定图像

  • System.Drawing.Image对象是具有到图像 加载到内存中用于操纵它,或在控制
    (但不是Web图像控制),以显示它的能力的类。

因此,不幸的是,你无法将System.Web.UI.WebControls.Image转换为System.Drawing.Image;它甚至不会触摸图像数据。

如果你想利用图像在的ImageUrl并将其转换为System.Drawing.Image对象可以调用

System.Drawing.Image.ImageFromFile("path/to/image") 
0

图像时页面呈现在客户端的Web控件会发出HTML。 HTML元素的src属性指向图像的url,以便浏览器可以下载并显示在其分配的位置。

如果要加载的位图对象相同的图像,获取图像的物理路径在Web服务器并创建位图如下

Bitamp bmp = Bitmap.FromFile("PHYSICAL-IMAGE-PATH"); 

您可以从的ImageUrl得到的物理图像路径属性并通过Server.MapPath将url转换为物理绝对路径。

如果图片url没有存储在本地服务器上,您可以使用HttpClient下载图片并保存在您的服务器TEMP文件夹下,以便能够加载和操作。

相关问题