Voici mon code:
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 déclinaison imageUrl supérieure prend une chaîne d'image Base64, et je souhaite la convertir en image. Je pense que mon ensemble de code ne fonctionne que pour des images comme "www.monsite.com/test.jpg" et non pour une chaîne Base64. Quelqu'un a des suggestions? Merci!
c#
asp.net
image-processing
base64
anthonypliu
la source
la source
Vous pouvez enregistrer Base64 directement dans le fichier:
la source
Image.Save()
). Les deux fonctionnent, mais pour une raison quelconque, cette version réduit la taille de mon fichier de 30% sans changement perceptible de la qualité d'imageVoici ce que j'ai fini par faire.
la source
A generic error occurred in GDI+
décrite ici . Déplacer l'image.Save
intérieur du bloc using l'a corrigé pour moi.Je suggérerais via Bitmap:
la source
Dans mon cas, cela ne fonctionne qu'avec deux lignes de code. Testez le code C # ci-dessous:
C'est tout. Veuillez voter si vous trouvez vraiment que cette solution fonctionne pour vous. Merci d'avance.
la source
dirPath
doit avoir un@
signe avant la chaîne i..e.@"C:\myfolder\"
ou vous devez échapper aux contre-obliques dans la chaîne ie"C:\\myfolder\\"
Voici un code de travail pour convertir une image d'une chaîne base64 en
Image
objet et la stocker dans un dossier avec un nom de fichier unique:la source
Dans un scénario similaire, ce qui a fonctionné pour moi était le suivant:
ImageTagId
est l'ID de la balise d'image ASP.la source
Si vous avez une chaîne de données binaires encodée en Base64, vous devriez pouvoir effectuer les opérations suivantes:
Vous devriez pouvoir écrire le tableau résultant dans un fichier.
la source
la source