Tôi có một trang gửi dữ liệu canvas html5, được mã hóa dưới dạng hình ảnh bmp base64 (sử dụng thuật toán http://devpro.it/code/216.html) này thành quy trình serverside chuyển đổi nó thành đối tượng System.Drawing.Image và một số thao tác trên đó.System.ArgumentException: Tham số không hợp lệ
Trong môi trường địa phương của tôi, điều này chỉ hoạt động tốt, nhưng trên dụ EC2 của tôi, tôi nhận được lỗi sau:
System.ArgumentException: Parameter is not valid. at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData) at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement)
Mã của tôi trông như sau:
System.Drawing.Image image = null;
string b64string = "...";
byte[] sf = Convert.FromBase64String(b64string);
using (MemoryStream s = new MemoryStream(sf, 0, sf.Length))
{
image = System.Drawing.Image.FromStream(s, false);
}
...
Dưới đây là một file văn bản với một mẫu b64string mà tôi đang sử dụng để kiểm tra: https://docs.google.com/leaf?id=0BzVLGmig1YZ3MTM0ODBiNjItNzk4Yi00MzI5LWI5ZWMtMzU1OThlNWEyMTU5&hl=en_US
Tôi cũng đã thử những điều sau đây và có cùng kết quả:
System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
image = converter.ConvertFrom(sf) as System.Drawing.Image;
Mọi thông tin chi tiết sẽ được đánh giá cao!
Phiên bản nào của khung công tác mà bạn đang chạy trên, cục bộ và trên phiên bản ec2? – Oded
Bạn có nghĩa là dữ liệu thử nghiệm thực tế (tệp đó) không thể được giải mã trên cá thể ec2, nhưng có thể trên máy tính của bạn không? Ví dụ. không có khả năng rằng có dữ liệu khác nhau được xử lý trong dev của bạn và trong thử nghiệm máy chủ của bạn. –
Xin lỗi, quên đề cập đến .NET 4.0 trên cả hai. – ari