如题,我用getpixel在98和xp系统中对同一图片的同一点取色,
系统的分辨率和颜色数都相同,
结果不相同,为什么?
高手指教~!!!如何解决?

解决方案 »

  1.   

    xp和未来的LONGHORN系统的颜色总数 都会增加了!
    颜色数密度变大!  以上是个人猜测!!
      

  2.   

    API是微软写的 问微软去 微软每次发布新 操作系统 颜色数量都在增加!
      

  3.   

    Win98中颜色好像只用到了R、G、B三个通道,而XP中增加了一个Alpha半透明通道,可能是因为这个问题才导致读取的不同吧,你读取后转换成16进制,就应该能够发现有一个字节不同而已
      

  4.   

    取回来后 and $FFFFFF试试
      

  5.   

    while not  getanswerfromM$ do
     begin
      up
      偶们的水平 一代不如一代,因为被老外封装了太多底层的东西
      end;
      

  6.   

    楼上滴..偶倒其实我是对一个游戏中全屏的窗口的图像用getpixel取色,
    除了操作系统不同,其他分辨率都是800×600,颜色都是16位色,可是在98系统和xp系统下却不一样,
    关键代码是:
    dc1:=getdc(getforegroundwindow());
    mycolor:=getpixel(dc1,200,200);
    可是mycolor的值却不一样,我转成16进制看,98下是ffc410,xp下是ffc308
    而对另外一个点取色98下是787078,xp下是 736d73 why!why!why!
      

  7.   

    哪位大哥有通过DIB取色而不是简单的用getpixel取色的例子啊?先谢谢了~~分可以加~~~~
      

  8.   

    那个颜色是系统颜色吧,Display Properties->Appearance->Advanced 里面系统默认的颜色?或者你得到的并不是DX创建的画面的颜色,而是除去DX创建的那一层(窗口?我不懂DX)下面的颜色吧
      

  9.   

    还是 这个:
     估计这里你是找不到答案了:while  getanswer.fromM$()=false do
     begin
      up
      end;