aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
楼主: jacen

屏幕找图找色( soImage扩展库 演示 )

 火... [复制链接]

0

主题

1

回帖

6

积分

新手入门

积分
6
发表于 2015-2-22 16:48:55 | 显示全部楼层
小学鸡报到。学习中,谢谢。。。。。

25

主题

89

回帖

732

积分

三级会员

积分
732
发表于 2015-7-14 09:20:42 | 显示全部楼层
牛逼牛逼  很好!

1

主题

25

回帖

367

积分

二级会员

积分
367
发表于 2015-7-29 15:24:03 | 显示全部楼层
刚试了一下,不知道相似度那里怎么设置,而且找图的速度比较慢。。。

3

主题

27

回帖

250

积分

二级会员

积分
250
发表于 2015-8-16 00:39:34 | 显示全部楼层

7

主题

28

回帖

219

积分

二级会员

积分
219
QQ
发表于 2016-6-2 18:45:37 | 显示全部楼层
图形处理简单明了

4

主题

16

回帖

141

积分

一级会员

积分
141
发表于 2017-2-11 01:32:57 | 显示全部楼层
自己写了个函数,请高手指点改良
//找图函数
findPicture=function(x1,y1,w,h,imgFile,hwnd){
        import gdip;
        import gdip.bitmap;
        //欲找的图
        var bmpFind= gdip.bitmap(imgFile)
    hFind=bmpFind.height
    wFind=bmpFind.width
        var findData= bmpFind.lockMemory(,0x21808/*_PixelFormat24bppRGB*/,1/*_ImageLockModeRead*/)

   //====================================================================       
    var wSnape = w//截图宽度
    var hSnape = h//截图高度
   
        var snape=snapeTobmp(hwnd,x1,y1,w,h)
        snapeData=snape.lockMemory(,0x21808/*_PixelFormat24bppRGB*/,1/*_ImageLockModeRead*/)
       
        //扫描范围
        var wScan=w-wFind+1
        var hScan=h-hFind+1
        var scanSnape=snapeData.Scan0
        var scanFind=findData.Scan0
        var strideFind=findData.Stride
        var strideSnape=snapeData.Stride
        var isFind = false;
    var pf,ps
       
        for(sh=1;hScan;1){
           for(sw=1;wScan;1){
                     for(fh=1;hFind;1){
                               for(fw=1;wFind;1){
                                   pf=fw*3+strideFind*(fh-1)
                                   ps=(fw+sw)*3+strideSnape*(fh+sh-1)
                                  if(scanFind[pf]==scanSnape[ps] && scanFind[pf-1]==scanSnape[ps-1] && scanFind[pf-2]==scanSnape[ps-2]){
                                               isFind=true
                                  }else {
                                      isFind = false;
                                      break;
                                  }  
                               }
                               if (isFind == false) { break; }  
                     }
              if (isFind) {
                  bmpFind.unlockMemory(snapeData)
              bmpFind.unlockMemory(findData)
                  bmpFind.dispose()
                  snape.dispose()
                  return sw,sh;
              }   
           }
        }       
        bmpFind.unlockMemory(snapeData)
    bmpFind.unlockMemory(findData)
        bmpFind.dispose()
        snape.dispose()
        return -1,-1;
       
}
//截图函数
snapeTobmp = function(hwnd,x=0,y=0,w=1280,h=800) {
    import gdip.bitmap
        if( hwnd===null ) hwnd =  ..win.getDesktop();
        if( ..win.isIconic(hwnd)  || ( !..win.isVisible(hwnd) ) )
                ..win.show(hwnd, 0x4/*_SW_SHOWNOACTIVATE*/);
        var bmp;
        ..gdi.windowBuffer( hwnd,
                function( hdc,hMemDc,hMemBitmap,width,height ){
                        ::PrintWindow( hwnd,hMemDc,0)       
                        if( x : y : w : h ){                 
                                var left,top,width,height = ..win.getClientPos(hwnd);
                                x = x + left;
                                y = y + top;
                                width = w:( width - x)
                                height = h:( height - y)           
                                ..gdi.doubleBuffer( hMemDc,width,height,
                                        function( hdc,hMemDc,hMemBitmap ){
                                                ::BitBlt( hMemDc , 0, 0,width,height, hdc, x, y,0xCC0020/*_SRCCOPY*/ | 0x40000000/*_CAPTUREBLT*/)
                                                 bmp = gdip.bitmap(hMemBitmap);
                                                 return true;
                                        }
                                )  
                        }  
                          else {
                                  bmp = gdip.bitmap(hMemBitmap);
                                  return true;
                          }
                }
        )
        return bmp;       
}

0

主题

8

回帖

69

积分

一级会员

积分
69
发表于 2018-4-10 18:44:09 | 显示全部楼层
感谢分享                                                         
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-2-13 09:26 , Processed in 0.071245 second(s), 20 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表