精灵图生成器
拖入一批图片,生成器会把它们排布到均匀网格上,并在浏览器中绘制成一张精灵图 PNG,随后输出为每个精灵带一个 background-position 偏移的 CSS。所有处理都在画布(canvas)上本地完成,因此不会向服务器上传任何内容。适合图标集、复古游戏帧,以及你想用单个文件而非许多独立图片的界面状态。你可以控制列数、瓦片尺寸、单元格间距和背景(透明、白色或黑色)。
精灵图是如何生成的
-
1
拖入你的图片
添加 PNG、JPG 或 WebP 文件。用上/下按钮重新排序或删除任意帧;图表会立即重建。
-
2
设置网格
选择列数;行数由你添加的图片数量决定。每张图片会在保持宽高比的前提下缩放以适配一个正方形瓦片,并居中。
-
3
调整瓦片尺寸和间距
以像素为单位选择瓦片尺寸,并在单元格之间加入间距,以避免缩放时相邻精灵相互渗色。
-
4
下载 PNG 并复制 CSS
把精灵图保存为单个 PNG,并复制生成的 CSS 类:每张图片一条带宽度、高度和 background-position 的 `.spr-名称` 规则。
布局如何工作
生成器使用一种可预测的单一布局:均匀网格。你设定列数,行数则为 向上取整(图片数 / 列数)。每个单元格都是相同的正方形尺寸(你选择的瓦片尺寸),因此每张图片会在保持宽高比的前提下缩放以适配其单元格,并居中。尺寸不一的图片最终都落入相同大小的单元格,这正是使用 background-position 的 CSS 精灵所期望的。
| 控制项 | 范围 | 作用 |
|---|---|---|
| 列数 | 1 到 16 | 每行的精灵数;行数自动计算 |
| 瓦片尺寸 | 32 到 512 px | 每张图片被适配进的正方形单元格 |
| 间距 | 0 到 64 px | 单元格之间的透明间隙,缩放时防止渗色 |
| 背景 | 透明 / 白色 / 黑色 | 输出 PNG 中精灵背后的填充 |
生成的 CSS 形态
每张图片会变成以其文件名命名的类(.spr-<名称>),尺寸等于瓦片,并偏移到其单元格。当列数为 4、瓦片尺寸为 128 px 且无间距时,图表如下所示:
.spr-idle { width: 128px; height: 128px; background: url(spritesheet.png) -0px -0px; }
.spr-walk { width: 128px; height: 128px; background: url(spritesheet.png) -128px -0px; }
.spr-run { width: 128px; height: 128px; background: url(spritesheet.png) -256px -0px; }
.spr-jump { width: 128px; height: 128px; background: url(spritesheet.png) -384px -0px; }
.spr-fall { width: 128px; height: 128px; background: url(spritesheet.png) -0px -128px; }
偏移在两个方向上移动:精灵从左到右填满每一行,然后换到下一行。把 PNG 保存为与你的 CSS 相邻的 spritesheet.png(或修改 url(...) 以匹配你的路径)。
间距与渗色
边对边紧密排布的精灵在浏览器缩放图表时(非整数像素比、CSS 变换)可能相互渗色。在单元格之间加入 2 到 4 像素的间距,防止相邻像素渗入。
高密度(Retina)屏幕
没有自动的 2x 导出,但你可以用简单的办法得到更清晰的图表:选择更大的瓦片尺寸(例如 256 px 而非 128 px),让每个精灵携带更多像素,然后在 CSS 中以一半尺寸显示。这样无需单独的处理过程,就能在高密度屏幕上获得清晰的精灵。
精灵图与替代方案
- 精灵图: CSS 中的经典图标集、HTML5 游戏帧,以及从把许多小图片合并为一个文件中获益的页面。
- SVG 精灵(symbol): 更适合现代界面图标,无损缩放,接受 CSS
fill,无需摆弄background-position。 - 图标字体: 有限,但仍用于极小的单色图标。
- 搭配 HTTP/2 或 HTTP/3 的独立文件: 多路复用让请求数量不再像过去那样重要。
常见问题
图片保留在浏览器中。在多步骤流程中,此浏览器会将所选图片文件和布局暂时保留在这个标签页内,最长30分钟。不会向服务器发送任何内容,也不会将任何内容添加到URL。
可以,不过内联 SVG 或 SVG <symbol> 精灵通常更契合组件框架。当静态页面同时显示大量图片时,CSS 精灵图最能发挥优势。
把列数设为你的帧数,让每帧位于一行,然后用 CSS animation-timing-function: steps(N) 和逐格跳动的 background-position 来驱动。适合简短的循环动画(加载指示、空闲状态)。
网格的每个单元格都是相同的正方形尺寸(你选择的瓦片尺寸),因此每张图片都被适配进其单元格并居中。如果你的精灵本就是相同的正方形,把瓦片尺寸设为一致,它们就会原样通过。
相关工具
PNG 转 SVG 矢量化工具
在浏览器中把 PNG 栅格图像转换为 SVG 路径。适合徽标、图标和线稿。可控制阈值、颜色数量和平滑度。
材质设计颜色选择器
浏览Material Design色板,单击即可将任意色号(50至A700)以HEX、RGB或 HSL 格式复制。
报纸制作工具
使用你自己的标题和文章制作报纸风格的头版,然后复制、下载纯文本,或打开浏览器打印对话框。
半色调生成器
将照片转换为可调节的 AM 式半色调,可选单色、取样色和 CMYK 风格模式,并下载 PNG 或矢量网点 SVG。
横线纸生成器
免费制作可打印的横线纸。选择宽格、中格或窄格,以毫米设置行距、纸张尺寸和一条页边线,然后打印或下载 SVG。
潘通(Pantone)转 HEX 转换器
将Pantone PMS色号转换为最接近的HEX、RGB及CMYK值,以确保屏幕显示与印刷效果一致,并提供色卡预览功能。
此工具还提供其他语言版本
- Sprite-Sheet-Generator [DE]
- Gerador de sprite sheet [PT]
- Trình tạo sprite sheet [VI]
- Sprite sheet-generator [SV]
- เครื่องมือสร้างสไปรต์ชีต [TH]
- Generator Sprite Sheet [ID]
- 스프라이트 시트 생성기 [KO]
- Generador de sprite sheets [ES]
- スプライトシート生成ツール [JA]
- مولّد أوراق السبرايت [AR]
- Générateur de sprite sheet [FR]
- Sprite sheet-generator [NL]
- Generator sprite sheet [PL]
- Generatore di sprite sheet [IT]
- Генератор спрайт-листов [RU]
- Sprite Sheet Oluşturucu [TR]
- Sprite Sheet Generator [EN]