Tôi có đối tượng 220ed x 3000 TransformedBitmap có định dạng {Indexed8} mà tôi đang làm .CopyPixels() trên. Tôi đang sử dụng'Vượt qua' Tai họa từ đối tượng TransformedBitmap
(int)((formattedBitmap.PixelWidth * formattedBitmap.Format.BitsPerPixel + 7)/8)
(giả sử 'formattedBitmap' là tên của hình ảnh mà từ đó tôi đang cố gắng để sao chép các điểm ảnh) cho giá trị 'sải chân' trong cuộc gọi phương pháp của tôi và một mảng các byte đó là Chiều dài 2208. Tôi có một cái gì đó giống như này làm việc ở nơi khác trong mã (nơi định dạng của hình ảnh là {Gray8}. Tuy nhiên, nơi tôi đang cố gắng để làm điều tương tự trên hình ảnh nói trên, tôi liên tục nhận được một "Đối số ra khỏi phạm vi" ngoại lệ nói "Giá trị tham số không thể nhỏ hơn '6624000'. \ r \ n Tên tham số: bộ đệm."
Câu hỏi của tôi về điều này là: tại sao mã giống hệt nhau lại hoạt động ở một nơi chứ không phải Điều gì khác trên thế giới, theo nghĩa của giáo dân, thực sự là 'sải chân'? Và làm thế nào tôi có thể có được ảnh hưởng mong muốn (sao chép các bit) mà không bị lỗi này? Tôi đang làm gì sai? điều này sẽ được đánh giá rất nhiều. Cảm ơn rất nhiều!
Ồ, và MSDN có một bài viết khá tốt về những gì 'sải chân'. Nó chắc chắn không phải là thuật ngữ "layman" và tôi thực sự tìm thấy nó một chút convulated, nhưng nó là một tài liệu tham khảo tốt không-ít (chỉ là một trong những bạn có thể cần phải đọc qua nhiều lần để thực sự hiểu nếu you'r mới để xử lý hình ảnh trong C# (như tôi!)) LINK: http://msdn.microsoft.com/en-us/library/aa473780(VS.85).aspx – JToland
Là một người có xu hướng lướt qua mã (tất cả chúng ta đều vội vàng phải không?) Tôi thấy tính toán sải chân của bạn (tính sai) và dành nửa giờ cố gắng làm cho nó hoạt động trước khi nhận ra rằng bạn đã có công thức chính xác xa hơn. Nó sẽ là tốt đẹp để có công thức chính xác ở đầu :) – Peter