我正在从数据库中检索图像,该图像以base64格式存储。我的要求是,我想将base64图像网址转换为用户友好的网址。我尝试了很多解决方案,但是没有像我预期的那样得到。任何人都可以建议我如何实现这一目标。
例如: -
这是bas64
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAJACAYAAABlmtk2AAAgAElEQVR4Xu 3dQYoj5paEUdng7Zhemie1ipz00rwfg2nSUOPKvEdCdPD11IqreucPQZCT/u3j4+PPPx6P3x//D//vn8 fj389/dv/+9zxe/u9x//mt+ecvAvVH9DybvxvKhU//3/734+N//vrx42859K7s57/987v797/nBfJ/j/ vPb80/fxGoP6Ln2fzdUC58+jeARBCz/QAQEOP5IyDG80dAjOePgBjPHwEx3gBCQI33A1BBy+dvfprOXw Utn7/5aTp/FbR8A8j8ON0PgAnpQP7Ex+H8mZAO5E98HM6fCelAA4j4PNwPwA3lQv6i59n83VAu5C96ns 3fDeVCA0j0npDtB/AERDiRP+A9IZr/ExDhRP6A94Ro/k9AhBMNIMB7RrQfwDMU7zfyv9s9I5n/MxTvN/ K/2z0jmf8zFO83GkB3u6ck+wE8hfF8JP8z3VOC+T+F8Xwk/zPdU4L5P4XxfKQBdKZ7TrAfwHMcr1fyv8 o9J5f/cxyvV/K/yj0nl/9zHK9XGkBXuSfl+gE8CfJ4Jv8j3JNi+T8J8ngm/yPck2L5PwnyeKYBdIR7Vq 6/oieZ/N3Q7mQv+h5dsG/AeQ9OF9YKFAD6Pz8HKw/TEgH8ic+DufPhHRgwb8BRBWw8EKBGkDWAUnXH9H zbP5uKBfyFz3PLvg3gLwH5wsLBWoAnZ+fg/WHCelA/sTH4fyZkA4s+P/28fHx5x+Px+8k8abwP4/Hv59 f3b//PQ+Q/3vcf35r/vmLQP0RPc/m74Zy4dP//wBHqel8UTBFDwAAAABJRU5ErkJggg==" />
我想要而不是base64
<img src="http://www.domainname.com/imagename.jpg />
如何实现这一任何建议
答案 0 :(得分:0)
首先通过调用Convert.FromBase64String方法将Base64字符串参数转换为字节数组。接下来,我们针对生成的字节数组创建一个MemoryStream,它作为Bitmap类'FromStream静态方法的参数。
public Image Base64ToImage(string base64String)
{
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream ms = new MemoryStream(imageBytes, 0,
imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
Image image = Image.FromStream(ms, true);
return image;
}
答案 1 :(得分:0)
为此,您需要拥有图像的标识符,例如唯一ID或名称。
所以在YourController下创建一个动作
public void Image(string id){
var base64String="";// get from id
byte[] bytes = Convert.FromBase64String(base64String);
Image image;
Response.ContentType = "image/jpeg";
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
现在在RouteConfig.cs
上添加到路线顶部的新路线
routes.MapRoute(
name: "ImageRoute",
url: "{id}.jpg",
defaults: new { controller = "YourController", action = "Image" }
);
但我建议不要使用url: "{id}.jpg"
,因为它很容易搞乱您目录中的任何其他物理图像。
url: "{controller}/{action}/{id}.jpg"
现在根据您的路线,您可以使用
&lt; img src =“http://www.domainname.com/[id/name].jpg /&gt;
或强>
&lt; img src =“http://www.domainname.com/YourController/Image/[id/name].jpg /&gt;