bat调用TexturePacker更新SpriteSheet
一款游戏会用到很多图片资源,通常我们会使用TexturePacker工具进行图片的拼接、压缩,为了考虑性能问题,单个SpriteSheet的尺寸不会设置的太大(最大1024 * 1024),这样就可能会有多个SpriteSheet。每当有图片资源需要更新时,操作起来会有点不方便。所以希望能通过bat来批量重新生成新的SpriteSheet
首先我们需要获取TexturePacker的安装目录,一般我们都会安装TexturePackerGUI工具,它实际运行起来还是调用TexturePacker.exe工具。因为软件环境因人而异可能存放的目录各不相同,这里通过读取注册表相关信息来避免此问题
@echo off echo "获取TexturePackerGUI注册表安装信息..." & echo. setlocal enabledelayedexpansion
for /f "skip=4 tokens=1,* delims=REG_SZ " %%a in ('reg query "HKEY_CLASSES_ROOT\Applications\TexturePackerGUI.exe\shell\Open\command" /ve') do (
set "str=%%b" echo !str! & echo. set "str=!str:"%%1"=!" echo TexturePackerGUI的安装路径:!str! & echo. for /f "tokens=1,* delims=" %%i in (!str!) do (
set "str=%%i" set "TexturePacker_Path=!str:TexturePackerGUI.exe=!TexturePacker.exe" echo !TexturePacker_Path! & echo.
)
) pause
在dos窗口下执行查询指令,得到结果如下图所示:

实际注册表的相关信息:
我们会发现,返回的结果中,前4行是无用的信息。然后以“REG_SZ ”作为分隔符进行字符串分隔。得到包含空格的路径信息:"G:\Program Files\TexturePacker\bin\TexturePackerGUI.exe" "%1"
通过set指令替换掉%1
set "str=!str:"%%1"=!"
然后通过for /f "tokens=1,* delims=" %%i in (!str!) do () 来去除””及空格信息
之后就直接调用了TexturePacker.exe
echo "TexturePacker安装路径:%TexturePacker_Path%" & echo. "%TexturePacker_Path%" batch_btn.tps
"%TexturePacker_Path%" batch_kuang.tps
"%TexturePacker_Path%" batch_left.tps
"%TexturePacker_Path%" batch_spt.tps
"%TexturePacker_Path%" batch_text.tps
"%TexturePacker_Path%" batch_expression.tps
下面附几张Texture Packer 的常用设置截图,

通常情况下,我们导出的纹理图片是RGBA8888格式,R、G、B、A各需要占用8个比特(1字节),所以一个像素总共需要4个字节表示。通常我们使用RGBA444来保存图片,不过需要注意设置一个参数来保证压缩后的图片尺寸大小不会变化。勾选“Allow free sizes”,否则使用导出的图片后界面会错位(因为空白区域被裁剪掉了>_<)

使用RGBA4444还需要注意的一个问题,就是选择压缩算法(抖动+通道)


参考资料:
使用TexturePacker批量生成SpriteSheet
(译)在cocos2d里面如何使用Texture Packer和像素格式来优化spritesheet
bat调用TexturePacker更新SpriteSheet的更多相关文章
- bat调用带参数存储过程
@bat调用sql文件 sqlplus user/pass@orcl @F:\factory.sql @将所有的存储过程封装在sql中 factory.sql:exec pro_factory(&am ...
- bat调用exe文件并且传递参数
bat调用exe文件并且传递参数 bat调用exe,并且传递日期参数,代码: @echo off cd "E:\SublimeWorks\exe" start xyzj_shrjj ...
- 远程调用cmd更新本地jar
最近遇到一个项目需求需要实现远程更新,但是本地项目无法更新自己,这让博主很是头疼,既然自己无法更新自己的话,那就自建新的项目,通过本地项目来调用新项目接口来更新本地项目. 代码如下: /** * 重启 ...
- Window脚本学习笔记之BAT调用设置
用一句bat脚本调用window的系统设置: rem 调用回收站 explorer.exe ::{645FF040-5081-101B-9F08-00AA002F954E} rem 检查Windows ...
- bat调用bat的一个巨坑
[一个巨坑] a.bat的内容:echo 1b.batecho 2执行结果:运行a.bat时,输出1,然后调用b.bat, 但是 echo 2 显示不出来. bat怎么调用bat文件并返回? 例如主文 ...
- Windows上通过bat调用jmx进行循环运行
1.jmx测试脚本中有两个线程组: 1)第一个线程组:模拟60台客户机并发像服务器发送上报请求,需要调用线程组的循环运行 2)第二个线程组:60台客户机上线后,模拟管理平台对客户机进行基础操作,如:创 ...
- bat调用kettle的job文件
@bat set /p param=请输入时间:echo %param%F:cd D:/data-integrationecho 正在执行接口call Kitchen.bat/norep /file ...
- jQuery最新CDN调用地址 更新(201902)
收集最新的jQuery地址,直接调用. 关于如何选择什么版本: https://www.cnblogs.com/osfipin/p/6211468.html 下面是收集的最新版本: 官方//code. ...
- BAT调用7z压缩程序
@echo offset zip=C:\Program Files\7-Zip\7z.exeset timestamp=%date:~6,4%-%date:~0,2%-%date:~3,2%set d ...
随机推荐
- fhq treap 学习笔记
序 今天心血来潮,来学习一下fhq treap(其实原因是本校有个OIer名叫fh,当然不是我) 简介 fhq treap 学名好像是"非旋转式treap及可持久化"...听上去怪 ...
- IntelliJ IDEA快捷键:F12
The F12 key moves the focus from the editor to the last focused tool window. 将焦点从编辑器移动到最后一个聚焦的工具窗口.
- CentOS7.x使用overlay文件系统
https://www.cnblogs.com/yufeng218/p/8370670.html http://www.cnblogs.com/lehuoxiong/p/9908118.html ht ...
- Java第三阶段学习(六、多线程)
一.进程和线程的区别: 进程:指正在运行的程序,当一个程序进入内存运行,就变成一个进程. 线程:线程是进程的一个执行单元. 总结:一个程序运行后至少会有一个进程,一个进程可以有多个线程. 多线程:多线 ...
- 【LOJ】#2508. 「AHOI / HNOI2018」游戏
题解 把没有门的点缩成一个点 如果\(i->i + 1\)的钥匙大于\(i\),那么\(i\)不可以到\(i + 1\),连一条\(i\)到\(i + 1\)的边 如果\(i->i + 1 ...
- linux中如何清空一个文件的内容
方法1: echo "" > /www.jbxue.com /xxx.log 方法2: echo "" >> /www.jbxue.com / ...
- Gitlab Webhooks, External Services, and API(二)
一. 使用webhooks webhook 是一个API的概念,并且变得越来越流行.我们能用事件描述的事物越多,webhook的作用范围也就越大.webhook作为 个轻量的事件处理应用,正变得越来越 ...
- java okhttp 发送图片
@RequestMapping(value="/demo2", method=RequestMethod.POST) @ResponseBody public String dem ...
- 链表用途&&数组效率&&链表效率&&链表优缺点
三大数据结构的实现方式 数据结构 实现方式 栈 数组/单链表 队列 数组/双端链表 优先级队列 数组/堆/有序链表 双端队列 双向链表 数组与链表实现方式的比较 数组与链表都很快 如果能精确预测栈 ...
- Redis学习笔记(1)- CentOS 6.4 安装Redis
Redis学习笔记(1)- CentOS 6.4 安装Redis 2013.10.13 学习环境 vm 10.1 + 默认.新装的干净 CentOS 6.4 64BIT系统 准备 1 ...