图片马赛克
上传照片后调整马赛克块大小,整图像素化或仅对中心椭圆区域打码:块越大越模糊,处理按「缩小再放大」方式在浏览器本地合成,完成后直接下载,图片不会上传到任何服务器。
发图前打码是刚需:车牌照、人脸、快递单号、屏幕上的账号信息,都只需要糊掉一小块而不是整张图。市面工具常在这时要求你登录、看广告,甚至把原图传到服务器——打码的初衷是保护隐私,上传反而先泄露了一道。
本工具的马赛克在浏览器里就地合成:按「先把图缩小到块级分辨率、再用像素化放大」的经典算法糊掉细节,块大小 2~64px 可调。只想糊中心的(人脸、证件号通常在中间)选「仅中心椭圆区域」,四周保持清晰,观感自然。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 选一张照片,或直接用内置示例图试手感。
- 调马赛克块大小:8px 轻度遮蔽、16px 常规、24px 以上几乎不可辨认。
- 选打码范围:整图或仅中心椭圆区域。
- 点「下载马赛克图片」,得到打码后的 PNG。
计算原理与示例
马赛克块大小怎么选
块大小决定模糊程度:8px 像素化后文字仍可辨认轮廓,适合轻度遮蔽背景;16px 是常规打码,人脸与文字都不可辨;24px 以上连图案形状都消失。遮挡车牌照、证件号建议 16px 起步。
中心椭圆的范围是多大
中心椭圆以图片中心为圆心,半轴约为宽高的 35%——480×320 的图覆盖中央 336×224 的椭圆区域。人脸、证件主信息多落在这个范围;不在此范围的目标(角落的车牌)用整图模式,或先裁剪再打码。
打码后还能还原吗
像素化是不可逆的有损操作:原始像素被合并成块级平均色,细节已被丢弃,正规算法无法还原。但小块(2~4px)理论上可被 AI 超分辨率工具「猜」出部分轮廓——涉及敏感信息时请用 16px 以上的块。
图片会传到服务器吗
不会。处理全程在你的浏览器里完成:解码、像素化、导出都在本机内存中进行,页面没有任何上传代码;断网状态下功能完全一致。这是「隐私工具不上传」的底线。
代码示例
JavaScript 像素化网格:向上取整铺满
const cols = Math.ceil(w / b);
const rows = Math.ceil(h / b); // 800×600、块 40 → 20×15 = 300 块
// 每块取块内像素均值填充,整块同色即马赛克
// 块越大越模糊:块 2 只是轻微颗粒感,块 128 已经认不出原图
JavaScript 中心椭圆:只打码椭圆内的块
// 椭圆中心 = 图中心,半轴 = 35% 边长
const rx = w * 0.35, ry = h * 0.35;
// 块中心落在椭圆内才打码(标准椭圆方程)
const px = (c + 0.5) * b, py = (r + 0.5) * b;
const inside = ((px - cx) / rx) ** 2 + ((py - cy) / ry) ** 2 <= 1;
常见问题
打码后的图片是什么格式?
PNG。它无损记录像素化后的画面,不会像 JPEG 那样在色块边缘补出噪点;文件体积按图片尺寸与内容复杂度变化。
能只糊掉图片里的一小块矩形吗?
当前版本提供整图与中心椭圆两种范围。要糊任意矩形,可以先用图片裁剪工具把目标区域单独导出打码,再拼回原图;椭圆模式覆盖了最常见的「糊中间」场景。
为什么块大小调到最小看起来没变化?
2px 的像素化相当于把图缩到一半再放大,视觉上接近轻微柔化。它用于「保留观感、丢掉精确像素」的场景;要明显打码请用 12px 以上。
支持动图(GIF)吗?
不支持。像素化只处理静态首帧并输出 PNG,动图请逐帧处理或使用视频编辑工具。
打码会保留 EXIF 拍摄信息吗?
会丢失——canvas 重新合成的 PNG 不含原始 EXIF。若你的目的是同时抹掉拍摄位置等元数据,这反而是顺带的好处;需要保留 EXIF 的请先备份原图。
一次能处理多大尺寸的图?
常规手机照片(几千万像素)没有压力,处理在毫秒级完成;超长截图(万级像素高)受浏览器画布上限约束,建议先缩放再打码。
打码和模糊有什么区别?
马赛克把区域切成色块、彻底丢弃块内细节;高斯模糊是加权平均、边缘仍保留梯度信息,理论上更易被反推。遮敏感信息优先马赛克——这也是新闻打码的主流做法。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。