2011-07-26 16 views
31

私はHTMLのWinアプリケーションにデータURL(埋め込み画像)に画像を変換する必要があります。画像にはURL(埋め込み画像)が 必要です。C#でHtmlの画像をURIに変換するには?

+2

タイトルは実際の質問の質問をよりよく説明します。 –

+0

ありがとうJeff、私はローカルディスクの多くのイメージを持っています、イメージはいくつかのイメージが大きく、いくつかのイメージが小さいですが、私はいくつかのイメージをHTMLに変換し、Webブラウザで使用するためのソリューションが必要です – 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だけがエンコードされたデータURLではありませんか?

次に、これを行う必要があります。

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からコードを明らかにし、よりにconvinientが考えられます。

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を置き換える)用法:

​​
関連する問題