搜索
楼主: jacen

[教程文档] 屏幕找图找色( soImage扩展库 演示 )

    [复制链接]

0

主题

1

帖子

6

积分

新手入门

Rank: 1

积分
6
发表于 2015-2-22 16:48:55 | 显示全部楼层

小学鸡报到。学习中,谢谢。。。。。

小学鸡报到。学习中,谢谢。。。。。
回复

使用道具 举报

25

主题

116

帖子

735

积分

三级会员

Rank: 4

积分
735
发表于 2015-7-14 09:20:42 | 显示全部楼层

牛逼牛逼 很好!

牛逼牛逼  很好!
回复

使用道具 举报

1

主题

27

帖子

367

积分

二级会员

Rank: 3Rank: 3

积分
367
发表于 2015-7-29 15:24:03 | 显示全部楼层

刚试了一下,不知道相似度那里怎么设置,而且找图的速度比较慢。。。

刚试了一下,不知道相似度那里怎么设置,而且找图的速度比较慢。。。
回复

使用道具 举报

3

主题

30

帖子

240

积分

二级会员

Rank: 3Rank: 3

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

{:3_48:}

回复

使用道具 举报

7

主题

35

帖子

219

积分

二级会员

Rank: 3Rank: 3

积分
219
QQ
发表于 2016-6-2 18:45:37 | 显示全部楼层

图形处理简单明了

图形处理简单明了
回复

使用道具 举报

4

主题

20

帖子

136

积分

一级会员

Rank: 2

积分
136
发表于 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

主题

9

帖子

63

积分

一级会员

Rank: 2

积分
63
发表于 2018-4-10 18:44:09 | 显示全部楼层
感谢分享                                                         
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2018-12-16 22:41 , Processed in 0.078125 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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