CSS 精灵图生成器
图像所有处理都在浏览器本地完成,数据不上传服务器
把图片拖到这里,或点击选择
也可以按 Ctrl/⌘ + V 粘贴截图
PNG / JPEG / WebP / GIF / BMP / AVIF · 单张不超过 30 MB
把多个小图标拖进来,工具把它们拼成一张大图,并给出每个图标在其中的 `background-position` —— 页面只需要一次请求就能拿到所有图标。图标多、每个都很小的站点至今仍在用这个办法。 排版用最经典的货架算法:按高度降序排序,依次往当前层里放,放不下就开新层、层高取该层最高的一张。排序是必须的 —— 不排序时一张特别高的图会让它所在那层留下大片空白,而后面矮的图又塞不进去。 两个容易踩的点写在这里:间距(`gap`)不只是美观问题 —— 用 `background-size` 缩放整张精灵图时,相邻图标会因为双线性插值把彼此的边缘采进来,表现为图标边上出现一条别的颜色,留 1–2px 就断了这条路;2 倍图在 CSS 里要把位置与尺寸都减半并写上 `background-size`,少写任何一个图标都会显得大一倍或者错位。
功能
- 多张图片一次拖入,拼成一张 PNG 精灵图
- 自动生成每个图标的 CSS:background-position + width / height
- 三种排版:自动紧凑、一行横排、一列竖排
- 可调图标间距,避免缩放时相邻图标互相渗色
- 2 倍图模式:位置与尺寸自动减半并写 background-size
- 类名从文件名生成(中文、空格、引号都会被清洗成合法类名)
- 重名自动加序号,不会两个图标共用一条规则
- CSS 以文本产物单独给出,可复制也可下载成 .css
- 图片不上传,断网也能用
使用方法
- 把多个小图标一起拖进虚线框(或点选多张)
- 选排版与间距;如果图标是 2 倍图就勾上对应选项
- 下载拼好的 PNG,复制生成的 CSS
- 把 PNG 放到项目里,让 `url()` 指向它的实际路径
常见问题
- 现在还需要精灵图吗?
- 看场景。HTTP/2 与 HTTP/3 让多请求的代价小了很多,而 SVG 图标能直接用 `<symbol>` 内联成一份。但在图标多、每个都很小、且都是位图的情况下(游戏 UI、老后台、工具栏),精灵图仍然是最省事的:一次请求代替几十次,而且不需要改构建流程。反过来说,如果只有十来个图标,直接用 SVG 更清楚,也更方便换色。
- 间距(gap)为什么要留 1–2px?
- 因为用 `background-size` 缩放整张精灵图时(做高清屏适配的常见做法),浏览器对图片做双线性插值 —— 采样某个图标边缘的像素时会把相邻图标的边缘也采进来,表现为图标边上出现一条别的颜色。留 1–2px 完全透明的间距就断了这条路。不缩放时可以留 0。
- 2 倍图模式做了什么?
- 按「输入是 2 倍图」处理:CSS 里每个图标的 `width` / `height` 与 `background-position` 都减半,并在基础类上写 `background-size: 一半的尺寸`。这样在普通屏上图标显示为逻辑尺寸,在高清屏上浏览器用两倍像素渲染 —— 图标是锐利的。勾错了的表现是图标整体大一倍(少减半)或者只显示左上角一小块(漏了 background-size)。
- 类名是怎么定的?
- 取文件名去掉扩展名,清洗成只含小写字母、数字与连字符,再加上你设的前缀。清洗是必须的:类名会进 CSS 与 HTML,而中文文件名、空格、引号都会让选择器失效或跳出属性。名字里没有可用字符时(比如文件名是「图标.png」)按序号兜底成 `icon-1`;两张图撞名时后面的加序号(`-2`、`-3`),避免两条规则互相覆盖。
相关工具
长图拼接
图像多张图竖向拼成长图、横向并排或拼成宫格。可调空隙、圆角与底色,统一宽度按最窄那张只缩不放。全程浏览器本地处理,不上传。
应用图标生成
图像一张图生成 iOS AppIcon、Android mipmap 与自适应图标、macOS 的 .icns。可调圆角与留白,自动铺不透明底色,全部在浏览器本地完成。
图片压缩
图像在线压缩图片,可以指定目标体积(如压到 200 KB 以下),工具用二分查找找出满足条件的最高质量。也支持按质量档与尺寸上限压缩。
图片格式转换
图像把图片在 PNG、JPEG、WebP、AVIF、BMP、TIFF 之间互转,质量与尺寸上限可调。PNG 转 JPEG 时先铺背景色,透明区域不会变成黑色。全部在浏览器本地完成。
九宫格切图
图像把一张图按网格切开,用于朋友圈九宫格、长图分页。可选 3×3 等六种网格、每格留白与底色,输出按序号命名便于依次发布。
图片加水印
图像给图片加文字水印:九个位置加平铺,字号按图片比例自动缩放,可调颜色与不透明度。平铺加倾斜是防裁剪的常用做法。全部本地完成。