赞 | 8 |
VIP | 14 |
好人卡 | 35 |
积分 | 32 |
经验 | 46931 |
最后登录 | 2024-8-10 |
在线时间 | 1442 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 3176
- 在线时间
- 1442 小时
- 注册时间
- 2009-7-27
- 帖子
- 1454
|
问题如标题,请高手为我解答。
- # 不知道是谁写的脚本,原脚本是用于截图存档的截图脚本,但是不足的地方就是当
- # 窗口标题变化(如测试时显示FPS时),就会截取屏幕右上角的图像。本人看了下,
- # 是获取窗口句柄的部分有问题,不知道这个问题已经有没有人修正过了,反正先放
- # 出来再说
-
- # 使用说明: 截图存放目录,默认为 Save
- # 调用方法: Screen2::shot 存图文件名,种类,切割数量,存放目录
- # 种类: 1:bmp 2.ipg 3.png
- # 切割数量: [1,1] : 不切割 [2,2] : 横向1刀,纵向一刀 [3,2] : 横向2刀,纵向1刀
- # 参数可以任意调整,最好切割的次数是游戏分辨率的约数
- #
- #==============================================================================
- # ■ module Screen
- #------------------------------------------------------------------------------
- # 处理画面截图的模块。切割
- #==============================================================================
- module Screen2
- # 声明 API
- @screen = Win32API.new 'screenshot', 'Screenshot', %w(l l l l p l l), ''
- @readini = Win32API.new 'kernel32', \
- 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
- @findwindow = Win32API.new 'user32', 'GetActiveWindow', '', 'l'
- module_function
- #--------------------------------------------------------------------------
- # ● 截图
- #--------------------------------------------------------------------------
- def shot(file = "rplay", typ = 1,xy = nil,dir = "jt/")
- # 根据类型生成扩展名
- if typ == 0
- typname = ".bmp"
- elsif typ == 1
- typname = ".jpg"
- elsif typ == 2
- typname = ".png"
- end
- # 生成文件名
- file_name = dir + file.to_s + typname.to_s
- # 生成截图文件(x,y,width,height,文件名,窗口句柄,类型)
- unless xy == nil
- w = xy[0]
- h = xy[1]
- ww = 640 / w
- hh = 480 / h
- index = 0
- 阵 = []
- for www in 1..w
- for hhh in 1..h
- index += 1
- x = ( www - 1 ) * ww
- y = ( hhh - 1 ) * hh
- file_name = dir + file.to_s + index.to_s+typname.to_s
- @screen.call(x,y,ww,hh,file_name ,handel,typ)
- 阵.push([file_name,x,y])
- end
- end
- save_data(阵,dir + file.to_s + ".info")
- else
- # 生成文件名
- file_name = dir + file.to_s + typname.to_s
- # 生成截图文件(x,y,width,height,文件名,窗口句柄,类型)
- @screen.call(0,0,640,480,file_name,handel,typ)
- end
- end
- #--------------------------------------------------------------------------
- # ● 获取游戏窗口句柄
- #--------------------------------------------------------------------------
- def handel
- return @findwindow.call()
- end
- end
复制代码 |
|