我想知道如何从图像 Web 控件设置位图?名为的图像 Web 控件是imgLoader
. 我试过了
Bitmap bmp = new Bitmap(imgLoader);
但是,错误表明它:
无法从 'System.Web.UI.WebControls.Image' 转换为 'System.Drawing.Image' 和 'System.Drawing.Bitmap.Bitmap(System.Drawing.Image') 的最佳重载方法匹配有一些无效参数。
也许你可以试试
Bitmap bitmap = new Bitmap(Server.MapPath(imgLoader.ImageUrl));
它们是两个完全不同的对象:
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")
位图构造函数需要图像作为参数。
将“imgLoader”图像投射到 System.Drawing.Image 并将图像传递给 Bitmap。
当页面在客户端呈现时,Image WebControl 将发出 HTML。HTML 元素的 src 属性将指向图像的 url,以便浏览器可以下载并显示在其分配的位置。
如果要在 Bitmap 对象中加载相同的图像,请在 Web 服务器中获取图像的物理路径并创建如下所示的位图
Bitamp bmp = Bitmap.FromFile("PHYSICAL-IMAGE-PATH");
您可以从ImageUrl 属性中获取图片的物理路径,并通过Server.MapPath 将url 转换为物理绝对路径。
如果图像 url 没有本地存储在您的服务器中,您可以使用 HttpClient 下载图像并保存在您的服务器 TEMP 文件夹下以便能够加载和操作。