函数:snapshot 截图
函数名称:截图
函数功能:截取屏幕中指定区域的图像并生成指定格式的图片文件
函数方法
snapshot(picname,x1,y1,x2,y2,quality)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
picname | string | 是 | 截图保存的文件名,不写默认为 res 文件夹下, 自建目录请填写绝对路径 |
x1 | number | 是 | 截图区域左上角顶点屏幕横坐标 |
y1 | number | 是 | 截图区域左上角顶点屏幕纵坐标 |
x2 | number | 是 | 截图区域右下角顶点屏幕横坐标 |
y2 | number | 是 | 截图区域右下角顶点屏幕纵坐标 |
quality | number | 否 | 引擎版本仅支持 iOS v2.0.9 以上版本, 当截图格式选为 jpg 时, 可用此参数控制图片质量,此参数值为大于 0 且小于等于 1 的值 |
函数用例
iOS
snapshot("test.png", 0, 0, 639, 1135); --以 test 命名进行截图
--全屏截图(iPhone 5, 5S),并以当前日期为文件名保存
current_time = os.date("%Y-%m-%d", os.time());
snapshot(current_time..".png", 0, 0, 639, 1135); --以时间戳命名进行截图
snapshot(current_time..".jpg", 0, 0, 639, 1135, 0.5); --使用 jpg 格式截图,并设置图片质量为 0.5
Android
--全屏截图(以小米 4 为例),并以当前日期为文件名保存
current_time = os.date("%Y-%m-%d", os.time()); --以时间戳命名进行截图
w,h = getScreenSize();
-- 右下角顶点坐标最大为 (宽度最大值 - 1,高度最大值 - 1)
snapshot(current_time..".png", 0, 0, w-1, h-1);
注意事项
图片保存路径:
触动精灵 iOS 资源文件目录:/var/mobile/Media/TouchSprite/res/(更多 - 文件管理 - 资源)
触动精灵安卓资源文件目录:/mnt/sdcard/TouchSprite/res/(我的账号 - 文件管理 - 资源)
当引擎版本高于 iOS v2.2.5-1 时,四个坐标参数省略,默认截取全屏图像。
quality
参数仅在引擎版本高于 iOS v2.0.9 时方可使用。雷电 9 系统模拟器分辨率为平板版时使用函数:getScreenSize 获取的屏幕宽高相反,获取到的宽度实际为屏幕高度,获取的高度实际为屏幕宽度,其他模拟器获取的屏幕宽高为实际屏幕宽高。
Android 系统保存图片支持 png 及 jpg 格式,不可以设置质量;iOS 系统保存图片的格式可为 bmp, jpg, png,因为 png 是 iOS 中最常见的格式,所以推荐选择 png。
截图时,旧版本触动精灵如使用全屏截图,右下角顶点坐标最大为宽度 -1,高度 -1,否则 iOS 系统会出现越界错误,安卓系统截出的图会是纯白色的,新版本已经解决问题。
默认图片路径请使用
userPath
函数获取,具体使用方法请参阅 对应章节,自建目录请填写相绝对路径, 文件名重复时会直接覆盖现有文件。本文 iOS 实例中 os.date 与 os.time 为 Lua 基本库函数,请查阅附录 Lua 操作系统函数库。
".." 为字符串连接操作符,可以将字符串变量、常量连接在一起。
本文 iOS 实例中 640*1136 为 iPhone 5,5S 等设备的分辨率,实际使用中请根据运行设备替换为对应值。
雷电 9 系统模拟器分辨率为平板版时使用函数:getScreenSize 获取的屏幕宽高相反,获取到的宽度实际为屏幕高度,获取的高度实际为屏幕宽度,其他模拟器获取的屏幕宽高为实际屏幕宽高。