¿Cómo se convierte una imagen de una ruta en la computadora del usuario a una cadena base64 en C #?
Por ejemplo, tengo la ruta a la imagen (en el formato C:/image/1.gif) y me gustaría tener un URI de datos que data:image/gif;base64,/9j/4AAQSkZJRgABAgEAYABgAAD..represente la 1.gifimagen devuelta.

Respuestas:
Prueba esto
fuente
image.RawFormat.RawFormatno es un especificador de formato de imagen; es una propiedad delimageobjeto, que devuelve en qué formato estaba la imagen cuando se leyó del archivo , lo que significa que, en este caso, devolvería el formato gif. Entonces, no cambia nada, excepto que en lugar de los bytes del archivo original real, tiene los bytes de la imagen como re-guardados en gif por el marco .Net.Obtenga la
byte[]representación de la imagen de matriz de bytes ( ), luego useConvert.ToBase64String(), st. Me gusta esto:Para convertir una imagen base4 de nuevo a System.Drawing.Image:
fuente
System.Drawing.Imagepuedes usar st. así:var img = Image.FromStream(new MemoryStream(Convert.FromBase64String(base64String)));Dado que a la mayoría de nosotros nos gustan los delineadores:
Si lo necesita como matriz de bytes Base64:
fuente
Aunque la respuesta más complicada está bien, encuentro que esto es mucho mejor
Es simple, no necesita volver a guardar y maneja diferentes formatos
fuente
Esta es la clase que escribí para este propósito:
fuente
Puede pasar fácilmente la ruta de la imagen para recuperar la cadena base64
Espero que esto ayude.
fuente
_image.RawFormat) pero expone los datos como tipo mimeimage/jpgPuede usar la
Server.Mapruta para dar una ruta relativa y luego puede crear una imagen usando labase64conversión o simplemente puede agregar unabase64cadenaimage src.fuente
De esa forma es más sencillo, donde pasas la imagen y luego el formato.
fuente
El siguiente código me funciona:
fuente
Basado en la respuesta más votada, actualizada para C # 8. Lo siguiente se puede usar de inmediato. Se agregó explícitamente
System.Drawingantes,Imageya que uno podría estar usando esa clase desde otro espacio de nombres de forma predeterminada.fuente
Puedes convertirlo así
Salida
fuente
Algo como eso
fuente
C#etiqueta en la pregunta?