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

Đề tài: Xác định các màu của 1 điểm ảnh như thế nào ?

  1. #1
    Ngày gia nhập
    01 2010
    Bài viết
    33

    Mặc định Xác định các màu của 1 điểm ảnh như thế nào ?

    Như tiêu đề mình muốn hỏi làm sao xác định được các màu tại 1 pixel ảnh...Ví dụ tại 1 pixel có bao nhiêu phần trăm màu Red,bao nhiêu % Green và %Blue...:|..AI bit chỉ mình với

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi tuanshaker0 Xem bài viết
    Như tiêu đề mình muốn hỏi làm sao xác định được các màu tại 1 pixel ảnh...Ví dụ tại 1 pixel có bao nhiêu phần trăm màu Red,bao nhiêu % Green và %Blue...:|..AI bit chỉ mình với
    Visual C# Code:
    1. Bitmap myBitmap = new Bitmap("xxx.jpg");    
    2. Color pixel = myBitmap.GetPixel(150, 50);
    3. int r = pixel.R;
    4. int g = pixel.G;
    5. int b = pixel.B;
    None!

  3. #3
    Ngày gia nhập
    01 2010
    Bài viết
    33

    Trích dẫn Nguyên bản được gửi bởi Xcross87 Xem bài viết
    Visual C# Code:
    1. Bitmap myBitmap = new Bitmap("xxx.jpg");    
    2. Color pixel = myBitmap.GetPixel(150, 50);
    3. int r = pixel.R;
    4. int g = pixel.G;
    5. int b = pixel.B;
    Ở đây mình có 1 bức ảnh nhỏ..Bây giờ mình muốn lấy tọa độ của những điểm trên bức ảnh mà thỏa mãn điều kiện là có R>=20,G>=20,B>=20...Nhưng mình làm bị báo lỗi( trong sự kiện nhấn vào button)
    Code:
    private void button1_Click(object sender, EventArgs e)
            {
                Bitmap bm = new Bitmap(@"D:\Untitled.png");
                int height = bm.Height;
                int width = bm.Width;            
                    for(int i=0;i<height;i++)
                        for (int j = 0; j < width; j++)
                        {
                            Color pixel = bm.GetPixel(i, j);
                            Double R = pixel.R;
                            Double G = pixel.G;
                            Double B = pixel.B;                     
                            if (R >= 20 && G >= 20 && B >= 20) 
                            {
                                MessageBox.Show("Coordinate: x=" + i + ",y=" + j);                          
                            }
                        }                  
            }
    Toàn bị báo lỗi:
    Parameter must be positive and < Height.
    Parameter name: y

    Bạn rõ chỉ mình với...:(

  4. #4
    Ngày gia nhập
    04 2008
    Nơi ở
    Bốn bề là nhà
    Bài viết
    703

    Bạn lưu ý là trong method GetPixel(int x, int y) thì x tính theo chiều rộng (width) còn y tính theo chiều cao (height).
    Do đó, bạn xem lại 2 chỉ số i,j.

  5. #5
    Ngày gia nhập
    08 2008
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    191

    Lỗi này là do bạn đã getPixel ra ngoài bức ảnh
    Sâu xa hơn đó là bạn nhầm chiều rộng và chiều cao, bạn nên đổi lại là ok ngay.
    Nhưng bạn làm thế này thì mình tin rằng sẽ treo đấy.

    bạn nên tham khảo
    Code:
    System.Runtime.InteropServices.Marshal.Copy
    Đã được chỉnh sửa lần cuối bởi leemanhj916 : 26-09-2011 lúc 11:17 PM.

    Fb-Skype-Mail : leemanhj916 [@gmail.com]

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