Base64로 인코딩된 이미지 문자열을 이미지로 변환
제공된 ASP.NET 코드 조각은 URL에서 이미지를 저장하려고 시도합니다. 하지만 제공된 URL이 직접 이미지 URL이 아닌 Base64로 인코딩된 문자열이기 때문에 문제가 발생했습니다.
이 문제를 해결하려면 Base64 문자열을 바이너리 데이터로 디코딩한 후 이미지 개체를 생성해야 합니다. 바이너리 데이터에서. 다음은 코드 수정 방법에 대한 예입니다.
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(); }
위 내용은 ASP.NET에서 Base64로 인코딩된 이미지 문자열을 이미지로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!