项目作者: lanphone

项目描述 :
unpack texture packer
高级语言: TypeScript
项目地址: git://github.com/lanphone/unpack_tp.git
创建时间: 2019-02-22T10:00:13Z
项目社区:https://github.com/lanphone/unpack_tp

开源协议:MIT License

下载


unpack_tp

unpack_texturepacker

把texturepacker 生成的图集,重新提取还原成多张小图

安装:

  1. $ npm install unpack_tp

用法命令:

un dir(file) type

dir(file):目录或数据文件

type:文件生成类型(比如cocos就是cc)

API:

  1. /**
  2. * 解包图集,裁剪还原小图片
  3. * @param fileOrDir 配置文件绝对路径或文件目录(允许目录嵌套),支持批量处理
  4. * @param packType 文件类型,非文件后缀,仅提供了cocos支持,类型为 "cc",可通过实现 IParser 接口扩展更多类型
  5. */
  6. function unpack(fileOrDir: string, packType: string)
  7. /**
  8. * 注册自定义解析器
  9. * @param type string类型
  10. * @param parserCls 实现了IParser接口的类
  11. * @param ext 文件扩展名 (".plist")
  12. */
  13. function registerParser(type: string, parserCls: any, ext:string)

编程式调用:

  1. var unpacker = require("unpack_tp");
  2. var path = require('path');
  3. unpacker.unpack(path.resolve("test", "ui"), "cc");

扩展接口实现

目前仅支持cocos 的plist导出,实现IParser接口可增加支持更多类型

  1. var unpacker = require("unpack_tp");
  2. unpacker.registerParser(IParserCls, "unity");
  3. unpacker.unpack(path.resolve("test", "ui"), "unity");
  1. /**
  2. * 解析器接口,实现parse方法
  3. */
  4. export interface IParser {
  5. /**
  6. * 解析可能有异步操作,所以要返回 Promise<ITrimData>
  7. * @param configFilePath
  8. */
  9. parse(configFilePath: string): Promise<ITrimData>
  10. }
  11. /**
  12. * 图集的裁剪数据
  13. */
  14. export interface ITrimData {
  15. /**
  16. * 图集的绝对路径
  17. */
  18. atlasPath: string,
  19. /**
  20. * 裁剪数据数组
  21. */
  22. itemDatas: ITrimItemData[]
  23. }
  24. /**
  25. * 裁剪单张图片的所需要数据
  26. */
  27. export interface ITrimItemData {
  28. /**
  29. * 图片名称
  30. */
  31. name: string,
  32. /**
  33. * 裁剪的时候是否需要旋转
  34. */
  35. rotated: boolean,
  36. /**
  37. * 旋转的角度
  38. */
  39. degree: number,
  40. /**
  41. * 真实的裁剪位置与大小,如果是旋转过的,要交换 w,h 的位置
  42. * [x, y, w, h]
  43. */
  44. frame: number[],
  45. /**
  46. * 原图像有效像素的矩形
  47. * [x, y, w, h]
  48. */
  49. sourceColorRect: number[],
  50. /**
  51. * 原图像的大小
  52. * [w, h]
  53. */
  54. sourceSize: number[]
  55. }

注:需要使用build下的binding.node才能正确裁剪图片,images附带的有问题,第一次运行会自动复制到node_modules/images目录下,
如果不能成功复制文件,需要手动进行操作,images修复后会移除这个步骤,如果运行时有问题,请把nodejs升级到最新版本,作者开发时用的是11.10.0