Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Lỗi "Parameter is not valid" xảy ra khó hiểu quá

  1. #1
    Ngày gia nhập
    05 2007
    Bài viết
    21

    Unhappy Lỗi "Parameter is not valid" xảy ra khó hiểu quá

    Chào các bạn.
    Mình đang làm một project xử lý ảnh, code 1 đoạn như thế này:
    Code:
    public FloatImage(Bitmap bitmap)
            {
                _rows = bitmap.Height;
                _cols = bitmap.Width;
                _data = new float[_rows * _cols];
    
                Rectangle rect = new Rectangle(0, 0, _cols, _rows);
                BitmapData data = bitmap.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed);
                unsafe
                {
                    int offset = data.Stride - _cols;
                    byte* pixel = (byte*)data.Scan0.ToPointer();
                    for(int y = 0; y < _rows; y++)
                    {
                        for(int x = 0; x < _cols; x++)
                        {
                            _data[y * _cols + x] = ((float)(*pixel));
                            pixel++;
                        }
                        pixel += offset;
                    }
                }
                bitmap.UnlockBits(data);
            }
    Đoạn code này được build thành một thư viện dll. Khi mình tạo 1 project và add dll này vào, và gọi hàm này, debug thử thì chương trình chạy bình thường, nhưng đến khi bắt đầu gọi hàm trên, thì nó báo lỗi ở dòng in đậm là "Parameter is not valid".
    Trong khi với cùng đoạn code đó trong chương trình mình tham khảo thì nó chạy bình thường
    Có thể vấn đề này mình hỏi hơi vớ vẩn nhưng sự thực là vẫn chưa biết lí do và giải quyết thế nào cả , ai rành về nó chỉ cho mình với.

  2. #2
    Ngày gia nhập
    01 2007
    Bài viết
    4

    Tôi cũng chưa xem xét về class BitmapData nhưng tôi đoán khi xem bạn mô tả như sau:
    -Khi build nó ko báo lỗi có nghĩa là hàm này đúng cú pháp.
    -Bạn copy nó ở một mã nguồn chạy tốt thì khi gọi nó có lỗi thì có thể bạn truyền tham số sai với điều kiện là nó phải độc lập với các methods khác trong class
    Như vậy bạn phải xem xét là nó có liên quan đến các methods khác không. Điều này tôi ko biết
    Nếu nó độc lập thì xem cách bạn truyền tham số. Bạn thử tạo một đối tượng bitmap sau đó truyền cho nó xem
    Bitmap image = new Bitmap( "c:\\YourImage.gif" );

  3. #3
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Ở bên C# debug được trong dll sao :-/

  4. #4
    Ngày gia nhập
    05 2007
    Bài viết
    21

    Cám ơn mọi người đã trả lời.
    Khi mình build file dll này, vẫn còn giữ source của nó. Như vậy lúc debug nó tự động báo lỗi ở trong file source luôn
    Mình nghĩ chỉ có 1 trong 2 khả năng: 1. Đối số bitmap mình gửi ko đúng, cái này thì chịu, ko bit giải quyết, vì mình cũng ko biết phải định dạng bitmap thế nào mới đúng với nó, trước khi truyền cho nó mình đã dùng cùng bitmap đó hiển thị lên picturebox qua phương thức picturebox1.image. 2. Là nằm trong đối số thứ 3 trong phương thức LockBits, cái này khi mình xem trên MSDN thì nó bảo là trong .Net Compact Framework ko chấp nhận kiểu này, mà mình có dùng Compact Framework đâu )
    Dù sao mình đang tìm cách sửa, hoặc thay luôn nó đi. Có thể tối này sẽ có kết quả

  5. #5
    Ngày gia nhập
    07 2006
    Bài viết
    17

    Bạn có thể đưa nguyên cái project lên đây được không?. Mình nghĩ hỏi suông như vậy thì ng khác cũng đoán mò, không ai giải quyết được.

Các đề tài tương tự

  1. ADO.NET The item "obj\Debug\Baitap1.form1.resources" was specified more than once in the "Resources"parameter parameter. Du
    Gửi bởi commoncm trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 31-01-2012, 11:24 AM
  2. Lỗi "Parameter is not valid" khi load ảnh từ CSDL vào PicturerBox !
    Gửi bởi huuhung trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 09-07-2011, 10:22 AM
  3. Graphic Lỗi "Parameter is not valid." khi lấy ảnh từ CSDL lên.
    Gửi bởi suzuki_aka trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 06-06-2011, 01:34 PM
  4. Nguyên nhân gây lỗi "Parameter is not valid" sau khi chạy chương trình 1 lúc?
    Gửi bởi thaibeo17 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 05-05-2011, 12:50 AM
  5. Một bệnh khó chữa :"Operation is not valid ... SetCurrentCellAddress "
    Gửi bởi HungDL trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 08-10-2008, 01:15 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn