c# - imagen - image url to base64
cómo convertir Image to Data URI para Html con C#? (3)
¿No es una URL de datos simplemente codificada la base de la imagen 64?
Entonces esto debería hacerlo.
var bytes = File.ReadAllBytes("C://somepath//picture.png");
var b64String = Convert.ToBase64String(bytes);
var dataUrl = "data:image/png;base64," + b64String;
Necesito convertir la imagen a URL de datos (imagen incrustada) en la aplicación Win para HTML y necesito URL de datos (imagen incrustada) en la imagen.
Si está utilizando ASP.NET MVC, un código poco revelado de la respuesta de Ankur podría ser más conveniente:
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();
}
y el uso (simplemente reemplazando @Url.Content
con @Url.DataUriContent
):
<img src="@Url.DataUriContent("~/Path/To/Image/yourImage.png")"/>
public static string GetDataURL(string imgFile)
{
return "<img src=/"data:image/"
+ Path.GetExtension(imgFile).Replace(".","")
+ ";base64,"
+ Convert.ToBase64String(File.ReadAllBytes(imgFile)) + "/" />";
}