ZH
我的工具

精灵图集生成器

把精灵图片打包成一张 PNG 精灵图集,并生成适用于 Phaser 和 PixiJS 的 JSON 图集,以及 CSS 精灵类。支持紧凑、网格或条带排列,可裁剪、加间距。

每张图片是一帧,以文件名命名。透明 PNG 效果最好。
仅用于网格排列。留空则为接近正方形的网格。
把每个精灵的边缘像素向外重复,避免游戏引擎缩放或过滤图集时出现接缝。
低于 100% 时平滑缩小;高于 100% 时以硬像素边缘放大(像素画)。
我的工具 →
广告

精灵图集会把许多小图片,例如动画帧、图标、图块和界面部件,打包进同一张纹理,这样游戏或网页只需加载一个文件,再绘制其中的区域。本生成器把您的图片打包成一张 PNG,并写出配套的图集:Phaser 和 PixiJS 可直接加载的 TexturePacker JSON Hash 或 Array 格式的 JSON 文件,以及用于网页精灵的 CSS 类。打包在浏览器中进行,您的素材不会被上传。

使用方法

  1. 拖入精灵图片,每个文件名会成为帧名。
  2. 选择“紧凑”得到最小图集,“网格”用于等大的动画帧,或选择条带排列。
  3. 设置间距、扩边、裁剪、2 的幂尺寸,以及允许的最大图集。
  4. 下载 PNG、JSON 图集和 CSS(或三者打包为 ZIP)。

计算公式

紧凑:采用 best-short-side-fit 的 MaxRects。每个精灵放入剩余边最短的空闲矩形,空闲空间围绕它拆分,并尝试多种图集宽度以保持面积最小。网格:单元格 = 最大的精灵;列数 = ⌈√n⌉(除非另行设置)。

每个框预留 宽度 + 间距 和 高度 + 间距(再加 2 × 扩边)。裁剪会切掉完全透明的行和列;JSON 中保留 sourceSize 和 spriteSourceSize,使引擎能还原原始帧框。扩边把边缘像素向外复制,使纹理过滤时不会混入相邻的精灵。从不使用旋转,所以每一帧都是 rotated: false。

示例

两个 160 × 100 的帧以 2 px 间距按网格排列,得到 322 × 100 的图集:帧 1 在 x = 0,帧 2 在 x = 160 + 2 = 162,所以它的 CSS 是 background-position: -162px 0。扩边 1 px 时,每个单元格变为 162 × 102,图集为 326 × 102;帧 2 从 162 + 2 + 1 = 165 开始。

常见问题

如何在 Phaser 或 PixiJS 中加载?

Phaser 3:this.load.atlas('hero', 'spritesheet.png', 'spritesheet.json'),然后使用 'walk-1.png' 这样的帧名。PixiJS:await Assets.load('spritesheet.json'),再按帧名读取纹理。

应该用紧凑还是网格?

紧凑能得到最小的图集,适合由不同大小的图片组成的图集。网格保持单元格等大,适合固定尺寸的动画帧,以及按单元格大小切分的引擎。

为什么要加间距或扩边?

纹理缩放或生成 mipmap 时,精灵旁边的像素可能渗入其中。2 px 的间距,或 1–2 px 的扩边,可以防止精灵边缘出现细线。

我的图片会被上传吗?

不会,打包和 PNG 编码都在您的浏览器中进行。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 精灵图集生成器. https://kakao.mobile/zh/tools/sprite-sheet-generator/

MLA

“精灵图集生成器.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/sprite-sheet-generator/.

广告