Conversion d'une chaîne d'image codée en Base64 en image
L'extrait de code ASP.NET fourni tente d'enregistrer une image à partir d'une URL. Cependant, vous avez rencontré un problème car l'URL fournie est une chaîne codée en Base64, et non une URL d'image directe.
Pour résoudre ce problème, vous devez décoder la chaîne Base64 en données binaires, puis créer un objet Image. à partir des données binaires. Voici un exemple de la façon dont vous pouvez modifier votre code :
protected void SaveMyImage_Click(object sender, EventArgs e) { // Get the Base64 encoded image string from the hidden input field string base64ImageString = Hidden1.Value; // Convert the Base64 string to binary data byte[] imageBytes = Convert.FromBase64String(base64ImageString); // Create a memory stream from the binary data using (MemoryStream ms = new MemoryStream(imageBytes)) { // Create an Image object from the memory stream Image image = Image.FromStream(ms); // Save the image to the specified location string saveLocation = Server.MapPath("~/PictureUploads/whatever2.png"); image.Save(saveLocation); } }
Remarques supplémentaires pour la gestion des exceptions bitmap
Si vous rencontrez un message « Une erreur générique s'est produite dans GDI » exception lorsque vous essayez de décoder la chaîne Base64, cela peut être dû au fait que les octets représentent une image bitmap. Pour résoudre ce problème, enregistrez l'image avant de supprimer le flux mémoire :
// Create a memory stream from the binary data using (MemoryStream ms = new MemoryStream(imageBytes)) { // Save the image to the memory stream image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); // Replace "Png" with the appropriate image format // Create an Image object from the memory stream image = Image.FromStream(ms); // Dispose the memory stream ms.Dispose(); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!