Base64 でエンコードされた画像文字列を画像に変換する
指定された ASP.NET コード スニペットは、URL から画像を保存しようとします。ただし、指定された URL が画像の直接 URL ではなく、Base64 でエンコードされた文字列であるため、問題が発生しました。
これを解決するには、Base64 文字列をバイナリ データにデコードしてから、Image オブジェクトを作成する必要があります。バイナリデータから。コードを変更する方法の例を次に示します。
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); } }
ビットマップ例外を処理するための追加の注意事項
「GDI で一般的なエラーが発生しました」が発生した場合Base64 文字列をデコードしようとしたときに例外が発生する場合は、バイトがビットマップ イメージを表すことが原因である可能性があります。これを解決するには、メモリ ストリームを破棄する前にイメージを保存します:
// 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(); }
以上がBase64 でエンコードされた画像文字列を ASP.NET の画像に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。