Tôi đã gặp vấn đề tương tự và được giải quyết ngay bây giờ, mặc dù điều này và một số ngoại lệ khác của Gdi + rất sai lệch, tôi thấy rằng vấn đề là tham số được gửi tới một hàm tạo bitmap không hợp lệ. Tôi có mã này:
using (System.IO.FileStream fs = new System.IO.FileStream(inputImage, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite))
{
try
{
using (Bitmap bitmap = (Bitmap)Image.FromStream(fs, true, false))
{
try
{
bitmap.Save(OutputImage + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
GC.Collect();
}
catch (Exception ex)
{
throw ex;
}
}
}
catch (ArgumentException aex)
{
throw new Exception("The file received from the Map Server is not a valid jpeg image", aex);
}
}
Các dòng sau đã gây ra một lỗi:
Bitmap bitmap = (Bitmap)Image.FromStream(fs, true, false)
Các dòng tập tin được xây dựng từ các tập tin tải về từ Map Server. Ứng dụng của tôi đã gửi yêu cầu không chính xác để tải hình ảnh và máy chủ đã trả về một thứ gì đó có phần mở rộng jpg, nhưng thực ra là một html cho tôi biết rằng có lỗi xảy ra. Vì vậy, tôi đã lấy hình ảnh đó và cố gắng xây dựng một Bitmap với nó. Sửa chữa là để kiểm soát/xác thực hình ảnh cho một hình ảnh jpeg hợp lệ.
Hy vọng điều đó sẽ hữu ích!
vui lòng định dạng câu hỏi của bạn đúng cách –
'không có giá trị nào trong số đó không lớn hơn 255' là sai, sai số âm của nó, làm cho nó dương. Vì vậy, bạn nói rằng tất cả các giá trị là trên 255. Tôi đoán bạn có nghĩa là họ là tất cả ít hơn hoặc bằng 255, mà là một rào cản nội tại của một byte. –