2011-07-26 13 views
31

HTML için Win uygulamasında Veri URL'sine (Görüntüyü katıştırma) görüntü dönüştürmem gerekiyor ve görüntü için Veri URL'sine (Görüntüyü katıştırma) ihtiyacım var.Nasıl C# ile Html için Görüntü Veri URI dönüştürmek için?

+2

Başlık, asıl soruyu soruyu açıklamak için daha iyi bir iş yapar. –

+0

Teşekkürler Jeff, yerel diskte birçok görüntü var, görüntüler farklı büyüklükte bir görüntü var ve bazı görüntü küçük, bazı görüntülerin HTML'ye dönüştürülmesine ve web tarayıcısında kullanılmasına ihtiyacım var mı? – hashi

cevap

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

@Andrew: Lütfen teknik olarak doğru cevabı ekleyin. – Ankur

21

Bir veri URL'si değil sadece resim tabanı 64 kodlanmış mı?

Sonra bunu yapmalıdır.

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(); 
} 

ve kullanım (sadece @Url.DataUriContent ile @Url.Content değiştirme): Eğer ASP.NET MVC kullanıyorsanız

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

, biraz Ankur's answer kod daha rahat olabilir açığa

<img src="@Url.DataUriContent("~/Path/To/Image/yourImage.png")"/> 
İlgili konular