【问题标题】:Display a dowloaded image using Base 64 string使用 Base64 字符串显示下载的图像
【发布时间】:2014-09-23 15:42:50
【问题描述】:

我需要使用下载 url 显示图像。我正在使用以下逻辑将其转换为 base 64 字符串。

HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(downloadUrl); 
HttpWebResponse fileResp = (HttpWebResponse)(fileReq.GetResponse()); 
fileResp.GetResponseStream().CopyTo(ms); 

byte[] byteArray = ms.ToArray(); 

if (byteArray != null) 
{ 
return Convert.ToBase64String(byteArray); 
}

尝试使用它来显示图像。我在“response.data”中正确获得了 Base 64 字符串

<img src="data:image/tiff;charset=utf-8;base64,' + response.data + '" />

我仍然只看到一个损坏的图像。有什么我想念的吗?

【问题讨论】:

  • Tiff 是那种浏览器支持的图像格式吗?
  • 您确定这是一个tiff 文件吗?我过去只使用过png。此外,response.data 实际上是什么样的(例如前 20 个字符)。 标签和它的 src 属性是否被相应地呈现?
  • 是的,它肯定是一个 tiff 图像。它以“SUkqAAgAAAAQAP4ABAABAAAAAAAAAAABBAABAAAAaQkAAAEBBAABAAAAWg0/.....”开头,是的,它们显示为损坏的。 @ne1410s
  • 您是否在支持 TIFF 的浏览器上运行? en.wikipedia.org/wiki/…

标签: c# jquery image base64


【解决方案1】:

我现在已将 tiff 转换为有效的 jpeg。遗憾的是,主要浏览器不支持 tiff

 if (byteArray != null) 
{ 
byte[] jpegBytes; 
using (MemoryStream inStream = new MemoryStream(byteArray)) 
using (MemoryStream outStream = new MemoryStream()) 
{ 
System.Drawing.Bitmap.FromStream(inStream).Save(outStream,     System.Drawing.Imaging.ImageFormat.Jpeg); 

jpegBytes = outStream.ToArray(); 
return Convert.ToBase64String(jpegBytes); 
} 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多