Aquí está mi código:
protected void SaveMyImage_Click(object sender, EventArgs e)
{
string imageUrl = Hidden1.Value;
string saveLocation = Server.MapPath("~/PictureUploads/whatever2.png") ;
HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
WebResponse imageResponse = imageRequest.GetResponse();
Stream responseStream = imageResponse.GetResponseStream();
using (BinaryReader br = new BinaryReader(responseStream))
{
imageBytes = br.ReadBytes(500000);
br.Close();
}
responseStream.Close();
imageResponse.Close();
FileStream fs = new FileStream(saveLocation, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
try
{
bw.Write(imageBytes);
}
finally
{
fs.Close();
bw.Close();
}
}
}
La declaración superior de imageUrl está tomando una cadena de imagen Base64, y quiero convertirla en una imagen. Creo que mi conjunto de códigos solo funciona para imágenes como "www.mysite.com/test.jpg", no para una cadena Base64. Alguien tiene algunas sugerencias? ¡Gracias!
c#
asp.net
image-processing
base64
anthonypliu
fuente
fuente
Puede guardar Base64 directamente en el archivo:
fuente
Image.Save()
). Ambos funcionan, pero por alguna razón, esta versión hace que el tamaño de mi archivo sea un 30% más pequeño sin cambios perceptibles en la calidad de la imagenAquí es con lo que terminé yendo.
fuente
A generic error occurred in GDI+
descrito aquí . Mover elimage.Save
interior del bloque de uso lo arregló para mí.Sugeriría a través de Bitmap:
fuente
En mi caso solo funciona con dos líneas de código. Pruebe el siguiente código C #:
Eso es. Vota amablemente si realmente encuentras que esta solución funciona para ti. Gracias por adelantado.
fuente
dirPath
tiene que tener un@
signo antes de la cadena i..e.@"C:\myfolder\"
o tienes que escapar de las barras invertidas en la cadena, es decir"C:\\myfolder\\"
Aquí hay un código de trabajo para convertir una imagen de una cadena base64 a un
Image
objeto y almacenarla en una carpeta con un nombre de archivo único:fuente
En un escenario similar, lo que funcionó para mí fue lo siguiente:
ImageTagId
es la ID de la etiqueta de imagen ASP.fuente
Si tiene una cadena de datos binarios codificada en Base64, debería poder hacer lo siguiente:
Debería poder escribir la matriz resultante en un archivo.
fuente
fuente