2012-10-15 46 views
8

Tôi đang gửi hình ảnh được mã hóa base64 từ phía máy khách bằng javascript (Tôi đang tạo ứng dụng tải lên Ảnh chụp màn hình cho ứng dụng asp.net bằng cách sử dụng http://supa.sourceforge.net/) và gửi yêu cầu ajax tới máy chủ để lưu trữ hình ảnh. Tại máy chủ tôi đang sử dụng HttpContext trong GenericHanlder trong ứng dụng asp.net.Giải mã base64 Phát trực tiếp hình ảnh

Làm thế nào để chuyển đổi dữ liệu hình ảnh từ HttpContext sang hình ảnh tại máy chủ?

Trả lời

35

Trước tiên, bạn cần phải chuyển đổi các cơ sở 64 trở lại vào byte:

byte[] data = System.Convert.FromBase64String(fromBase64); 

Sau đó, bạn có thể tải nó vào một thể hiện của hình ảnh:

MemoryStream ms = new MemoryStream(data); 
Image img = Image.FromStream(ms); 

Nếu bạn muốn lưu nó vào thay vào đó, hãy sử dụng System.IO.File.WriteAllBytes

+0

Hãy xem mục MSDN cho thuộc tính InputStream. Nó giải thích làm thế nào để trích xuất dữ liệu vào một chuỗi: http://msdn.microsoft.com/en-us/library/system.web.httprequest.inputstream.aspx Một khi bạn có dữ liệu vào một chuỗi, chuyển nó vào FromBase64String phương pháp như được hiển thị ở trên. –

4

Tôi cần làm điều gì đó tương tự, nhưng muốn làm việc trực tiếp với InputStream, vì vậy hãy sử dụng tính năng này để thực hiện giải mã:

// using System.Security.Cryptography 
var stream = new CryptoStream(Request.InputStream, new FromBase64Transform(), CryptoStreamMode.Read); 
var img = Image.FromStream(stream); 
Các vấn đề liên quan