# 图片怎么涂黑，才能让被遮住的那块真的没了

遮住和删掉在屏幕上一模一样，实际上完全是两回事。这里讲清楚区别，讲清楚哪两种做法留下的东西比人们以为的多，也讲清楚用什么办法能看出自己刚才做的是哪一种。

[打开图片涂黑与打码](https://httcup.github.io/tools/redact-image/): 你遮住的那块是从文件里删掉的，不是藏在文件里。

最后更新 2026年10月13日

## 先说结论

打开[图片涂黑与打码](https://httcup.github.io/tools/redact-image/)，把图片拖进去，在每一处不该被看到的地方拉一个框，然后按「涂黑并保存」。凡是能读成文字的，用涂黑。你拿回来的文件，原来有框的地方像素值已经不一样了：里面没有可以挪开的矩形，因为里面根本没有矩形。

下面讲的是最后这句话为什么才是重点，以及怎么判断你已经在用的软件能不能说同样的话。

## 客服截图和文件局部

**问题报告截图。**保留错误和解释它的控件，纯色盖住邮箱、账号、地址栏访问令牌及无关通知。PNG 保持留下的字清晰。添加附件前重开 `-redacted` 文件，读每个框周围，也查别处重复姓名。

**收据、包裹标签或证件局部。**完整盖住不需字段，文字周围留余量；二维码和条码也盖，不只盖人可读号码。预览小时可用 Left、Top、Width、Height 精确放框。每次一张，按原始大小检查保存件。删字段不能删别处线索，实色框仍显示遮盖位置和大小。身份识别重要时脸也用纯色，模糊和像素化仍保留主体测量信息。

## 遮住和删掉，在屏幕上一模一样

在 PDF 阅读器、幻灯片、文字处理软件或者带图层的图像编辑器里，往一个名字上画一个黑色矩形。你看到的是一个名字，上面压着一个黑色矩形。而在这些软件里，你*保存下来的*多半是一份含着这个名字的文档，外加一个另存的矩形，它有自己的位置、大小和颜色。

拿到这个文件的人可以把矩形挪开、删掉，或者换一个按不同顺序画图层的程序打开。名字还在里面。屏幕上看不出刚才发生的是哪一种，而这正是这种事一再发生在有法务部门的机构身上的原因。

法院卷宗、政府报告、合同，还有不止一家报社扫描的文件，都是这样流出去的。套路每次都一样：矩形是批注，而批注不是图片。

## 什么才算真正的涂黑

一张图片是一格一格的数字，一个像素一个数字。给它涂黑，就是**往这些格子里写进别的数字**，然后把这些格子保存下来。这之后没有什么可以还原，不是因为文件藏得好，而是因为那些数值不在文件里。只有这一种做法，经得起一个好奇的人把文件打开。

由此有三件事，一份真正涂过的文件就该是这个样子：

- **结果是平平的一张图。**没有图层，没有对象，没有批注列表，也没有什么可以开关。如果你的工具交回来的文件里带着一个图层，那它是遮住了，不是删掉了。
- **它是一个新文件，不是改过的旧文件。**像素走过了一次解码和一次编码，出来的东西是从涂好的那批格子里写出来的。
- **元数据也跟着没了**，这是顺带的结果。一格一格的像素不带相机型号，不带 GPS 位置，也不带时间。原本会有哪些东西，见[一张照片替你说了些什么](https://httcup.github.io/tools/guides/remove-exif-and-gps-data/)。

最后这一条值得展开，因为里面还藏着一个坑。很多照片带着一份**内嵌缩略图**：图片的第二份小副本，在文件生成时写下，而在图片被编辑之后不一定会重新生成。一张被就地修改、而不是被重新编码的照片，可能带着涂黑之前的缩略图一起出门。那是一张小图，但要在上面认出一个名字，绰绰有余。

![保存卡片：格式菜单、质量滑块，以及一行说明被遮住的像素会从写出的文件里去掉。](https://httcup.github.io/screens/redact-an-image/save.webp)

保存才是让这件事成真的一步。出来的是没有那些像素的新文件，而不是原文件加了个矩形。

## 涂黑、打码、模糊：为什么不能划等号

三种都会覆盖像素，只有一种什么都不留下。

### 涂黑

框内每个像素都变成同一颜色，不保留原有轮廓或平均亮度。但框的大小和周围上下文仍可能暗示原字段类型。这是三种方式中唯一能对恢复原像素给出明确否定答案的方式。姓名、地址、账号、车牌、签名和条形码应使用纯色覆盖。

### 打码

框被切成小格，每一格变成那一格的平均色。原来的像素确实没了，但一格一格的平均值仍然是对下面内容的一次测量，而对文字来说，这次测量可能就够了。

攻击一点也不精巧。文字来自一个很小的可能集合：一种字体、一个字号、一个位置、一串字符。猜得到那里原本是哪一类内容的人，可以把每一个候选字符串照同样的方式渲染出来，用同样的格子打码，再拿平均值跟你的比。通常只有一个对得上。这在真实的打码截图上已经被演示过，也有公开的软件在做这件事。

起决定作用的是**这块马赛克由多少格组成**。一个词上面两格，就是两个数字，两个数字确定不了一串字符；同一个词上面四十格，就是四十个数字，四十个绰绰有余。这也是这个工具为什么宁可告诉你图上最细的那块马赛克有多少格，而不是把一个档位叫作「强」：数字是事实，形容词只是对事实的看法。

### 模糊

每个像素变成周围像素的加权平均。这是一次卷积，而卷积原则上可以反过来算：从模糊的副本里把原图找回来是一个标准问题，有标准软件，而且它最擅长的恰好就是这里最要紧的那种情况，也就是用很小的半径去模糊清晰的文字。

马赛克和模糊可以减弱无关背景的干扰，但不能作为防止识别的保证。如果暴露主体会有影响，用纯色填充。姓名、数字和其他可读字段，**涂黑**。

![编辑面板：一张照片的一部分被不透明的方块盖住，可选黑色、马赛克或模糊，还有强度滑块和已标记区域的摘要。](https://httcup.github.io/screens/redact-an-image/cover.webp)

遮住一样东西的三种办法，而这三种并不等价。这一节讲的就是，面对试图还原的人，哪一种撑得住。

## 发出去之前的四个检查

加起来一分钟，对任何工具的结果都适用，也包括这一个。能被你检查的说法，比要你相信的说法值钱。

1. **尝试选择文字。**打开文件，在覆盖区域拖动。如果仍能选中，文字还在文档里，你看到的只是盖在上面的形状。
2. **在编辑器里检查图层。**真正处理后的图片应只有一个类似“背景”的图层。独立矩形对象表示原内容还在下方。
3. **检查缩略图。**部分文件管理器和查看器显示嵌入缩略图，不重新读取画面。如果小图仍有遮掉的内容，文件只是编辑过，没有重建。
4. **检查边缘和周围。**确认框外没有残留字母、数字或条形码片段，其他位置也没有重复同一字段。JPEG 压缩能让框边缘变软，所以仅凭边缘锐利程度，不能判断原像素是否被改写。

## 能裁掉就别遮

如果要藏的东西在图片边上，比如带账户名的页眉、浏览器标签页、显示着用户名的任务栏，那么裁掉比遮住更彻底，文件看起来也更干净。没有一个框需要被怀疑，因为那里已经什么都没有了。

[图片缩放](https://httcup.github.io/tools/resize-image/)可以裁剪，它还能做什么见[那篇指南](https://httcup.github.io/tools/guides/resize-an-image/)。中间的部分再交给涂黑工具。

## 截图往往才是最危险的

在一张截图里，能认出你的常常不只是图片本身。发出去之前，看看你想展示的那块四周还有什么：窗口标题、地址栏和它的补全列表、开着的标签页、一条通知、时间和日期、任务栏、角落里已登录的头像、无线网络的名字。其中任何一样都可能定位到你，而它们都不是你按下截图时在看的东西。

## 这件事不需要上传

读一张图片、往它的一部分像素上写、再重新编码，这些事浏览器已经会做很多年了。护照、工资单或者银行流水的照片，没有任何技术上的理由非要跑一趟陌生人的服务器再回来，只为被盖上一个黑框。而送进这类工具的，恰恰就是这些图片。

这里的工具不会把它们送到任何地方：页面的 `Content-Security-Policy` 写着它能联系的每一个地址，没有一个是本站的。如果你更愿意自己查而不是听人说，那就把页面加载好，断网，再照样涂一张。[把文件传给在线转换网站安全吗？](https://httcup.github.io/tools/guides/is-it-safe-to-upload-files/)里还有三个检查，对任何工具都能做。
