2011-07-26 78 views
31

我需要將圖像轉換爲數據URL(嵌入圖像)在HTML的Win應用程序中,並且我需要 數據URL(嵌入圖像)進行圖像處理。如何將圖像轉換爲Html與C#的數據URI?

+2

標題在解釋實際問題的問題上做得更好。 –

+0

謝謝傑夫,我在本地磁盤有很多圖像,圖像有不同的大小一些圖像很大,一些圖像很小,我需要一些圖像的解決方案轉換爲HTML並在網絡瀏覽器中使用? – hashi

回答

54
 public static string GetDataURL(string imgFile) 
     { 
      return "<img src=\"data:image/" 
         + Path.GetExtension(imgFile).Replace(".","") 
         + ";base64," 
         + Convert.ToBase64String(File.ReadAllBytes(imgFile)) + "\" />"; 
     } 
+0

@Andrew:請添加技術上正確的答案。 – Ankur

21

是不是一個數據的URL只是圖像庫64編碼?

然後這應該做到這一點。

var bytes = File.ReadAllBytes("C:\\somepath\\picture.png"); 
var b64String = Convert.ToBase64String(bytes); 
var dataUrl = "data:image/png;base64," + b64String; 
5

如果您使用ASP.NET MVC,有點透露從Ankur's answer代碼可以更方便易:

public static string DataUriContent(this UrlHelper url, string path) 
{ 
    var filePath = HttpContext.Current.Server.MapPath(path); 
    var sb = new StringBuilder(); 
    sb.Append("data:image/") 
     .Append((Path.GetExtension(filePath) ?? "png").Replace(".", "")) 
     .Append(";base64,") 
     .Append(Convert.ToBase64String(File.ReadAllBytes(filePath))); 
    return sb.ToString(); 
} 

和使用(只是@Url.DataUriContent更換@Url.Content):

​​