帧工坊 FrameCraft 帧工坊 FrameCraft

像素风转换:把图片变成像素画,放大也不糊

像素画不是「把图缩小」,而是先降采样成小色块、再降色到一套固定调色板、最后整数倍最近邻放大——三步缺一步,出来的就只是一张模糊的小图。这一页把三步串成一条链路:按块平均降采样(比隔点取样干净,AI 生成图的噪点不会变成乱跳的色点),降色到你选的调色板(PICO-8 16 色、Game Boy 4 色、NES、C64、Sweetie 16,或者从图里自动提取 N 个代表色),最后整数倍最近邻放大 2~8 倍——因为只做整数倍且不做插值,放大后每一个像素依然是一个方方正正的块,边缘利落不会糊。抠图素材的半透明毛边会自动切干净,进引擎不留脏像素。图片只在你的浏览器里处理,不上传服务器。

8 套调色板 / 自动取色 · 降采样宽度与放大倍数可调 · Floyd–Steinberg 抖动可选 · 批量序列帧 · 原图结果并排对比

1
上传图片
👾

把图片拖进来,或点这里选

PNG / JPG / WebP,可以一次选多张(一整段序列帧直接全选)

本地处理,不上传服务器
还没上传图片
2
调参数,看效果
像素宽度 96 横向切成多少个色块,越小越「像素」
调色板 色数 16
放大 透明阈值 128
色数少时勾上,过渡更自然;要硬朗的色块就别勾
原图
还没上传图片
像素化后(棋盘格 = 透明)
还没处理
第 1 / 0 张 上传后点「✨ 应用到全部」
3
所有图(点一张切换预览)
第 1 / 0 张
4
导出
PNG 序列 ZIP 拼成合图 GIF 动图 单张 PNG

怎么用

  1. 上传:把图片拖进第一步的框里,可以一次选多张——一整段动画序列帧直接全选拖进来。
  2. 定像素大小:像素宽度就是横向切成多少个色块。角色素材常用 48~96,场景图 128~256,越小越「像素」、越有老游戏味。
  3. 选调色板:想要统一的复古色调就选 PICO-8 / Game Boy / NES 这类固定调色板(整批素材用同一套,画面才协调);想保留原图色彩就选「自动取色」,再用色数滑块控制保留多少种颜色。
  4. 调放大:选 ×2 ~ ×8。因为是整数倍最近邻放大,放大后每个像素依然是一个方块,不会糊——这也是它和普通「图片放大」的根本区别。
  5. 导出:PNG 序列打包 ZIP(做素材用这个),或者拼合图、生成 GIF 看动作。

常见问题

为什么放大后不会糊?

因为放大用的是最近邻插值 + 整数倍:一个像素复制成 N×N 个一模一样的像素,不做任何平滑计算。普通放大会在像素之间插值出新颜色,边界就糊了;这里每个色块边缘永远是硬直角。前提是整数倍——非整数倍会让同一个源像素在输出里占的宽度不一样,块大小就不齐了,所以本工具只给 1/2/3/4/6/8 这些倍数。

调色板和「自动取色」选哪个?

固定调色板(PICO-8、Game Boy、NES、C64、Sweetie 16)是别人验证过的配色,整批素材全用同一套,画面风格会非常统一,也最像老游戏。自动取色用中位切分法从你这张图里提取 N 个代表色,好处是保留原图色调,坏处是每张图提取出的颜色不同,序列帧放一起可能闪。做一套角色动作建议用固定调色板。

「抖动」要不要勾?

色数多(16 色以上)时别勾,硬色块才是像素画的味道。色数少时(黑白、4 级灰、Game Boy 4 色)勾上——它用 Floyd–Steinberg 误差扩散把量化误差摊给邻居像素,渐变不会断成一条条色带,细节能留住。代价是画面会有一层细颗粒,这是正常的。

抠过的透明图转像素,为什么边缘干净了?

抠图素材边缘通常有一圈半透明像素(alpha 介于 1~254),像素画留着它们,进引擎会显示成一圈脏边。本工具默认勾了「切净毛边」:不透明度低于阈值的像素直接归零,高于阈值的补成完全不透明,所以结果里只有「全透」和「实心」两种像素,没有中间态。想保留半透明(比如做柔和阴影)就取消勾选并把阈值拖到 0。

降采样为什么用「平均」而不是「取样」?

隔点取样会放大噪点:AI 生成图和实拍照片里有大量细碎噪点,取样正好可能抽到噪点,导致相邻色块颜色乱跳。按块平均先把一个格子内的颜色抹平再降色,色块干净、形状也稳。代价是极小的高频细节(发丝、细纹)会被抹掉——这恰好是像素画想要的。

导出格式怎么选?

做游戏素材选 PNG 序列 ZIP(无损、保留透明通道)。拼成合图适合直接喂给引擎的 sprite sheet。GIF 只有 256 色,且透明只有「全透/不透」两档,只适合发出来看效果,别当素材用。

收费吗?图片会上传吗?

免费,无水印、无需注册。整个处理过程在浏览器本地完成,图片不经过任何服务器。

相关工具