我在开发一个图像提取的软件,用于传送到单片机,不知道怎么提取这个任意像素点的颜色,是否可以通过坐标XY得到,可能是我太差了,在网上没有找到,各位大哥多指教!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      hd:hdc;
      c:COLORREF;
    begin
      hd:=getdc(0);  //得到桌面HDC
      c:=Getpixel(hd,10,10); //得到10,10处颜色值 
    end;
      

  2.   

    COLORREF就是一个dword.它的值一般为$00RRGGBB
    其中R-红,G-绿,B-兰
    可以参考:delphi的TColor type
      

  3.   

    不好意思,应该是
    $00bbggrr 
      

  4.   

    你可用
    GetBValue, GetGValue, GetRValue
    来分别得到三种颜色的值
    如:
    b:=GetBValue(c);
      

  5.   

    是这样的,现在我的程序需要根据提取的color值,并将其发送到单片机去驱动LED的一个像素点显示,这样就可以实现电脑与LED屏的同步,如果可以将上面C转换成数字,我将比较方便将其转换成十六进制,单片机也容易接收!keiy() 怎样实现,能不能帮我想想办法!
      

  6.   

    非常感谢KEIY()兄弟,在你的帮助下我的问题基本已得到解决,谢谢!记得有机会再来帮助我!结贴给分!我顶!