签名去背景

把手机拍的照片或扫描的签名纸变成透明PNG上干净的黑色笔迹,纸张、阴影和发黄的色偏统统消失。

这个签名去背景工具做了什么

本页面把签好字的纸张照片或扫描件中的笔画提取出来,其余部分全部变透明。它不运行通用去背景工具所使用的那个AI主体分割模型,这是刻意的设计决定,而不是缺功能。让一个显著目标模型去说出“一张签好字的纸的照片”的主体是什么,它的答案是:那张纸。它会把整张纸干净地从桌面上抠下来交还给您,而签名依然坐在不透明的白底上。把墨迹和纸张分开完全是另一种测量,所以本页面跑的是另一套算法。它的工作方式和文档扫描仪一样。首先,它通过对每个像素周围一个大方窗内的亮度求平均,建立一张“纸有多亮”的分布图——窗口大小约为短边的十六分之一,通过积分图计算,因此开销不随窗口增大而增加。笔画很细,在任何这样的窗口中只贡献百分之几,这使得那张图本身就是对纸张的良好估计,连同它的阴影梯度、台灯的暖色偏和旧纸的发黄一并纳入。随后,每个像素与它自己所处位置的纸张值比较,而不是与某个固定亮度比较:低于周围光照的阈值比例的成为墨迹,其余变透明。紧贴阈值下方的一条柔和带让每一笔外侧的抗锯齿部分保持半透明,正是它让结果不至于看起来像一张传真。墨迹默认被压成接近纯黑,也可以为蓝色笔保留扫描到的颜色。局限直接来自这套方法:任何确实比周围纸张更暗的东西都算墨迹,所以印刷文字、横格线、方格、订书钉的阴影和一道硬折痕,都会连同签名一起留下来。比纸面只暗一点点的铅笔签名可能要调高阈值才能被认出来,而调高的同时也会开始放进纸张颗粒。另外,由于光照分布图假设笔画相对于窗口是细的,一个占满大半画面的粗马克笔签名会把自己的内部抹掉一部分。输出永远是PNG,文件绝不离开您的浏览器。

为什么签名需要一个专门的工具

几乎没有人第一遍就用数字方式签字。正常的流程是:合同、租约、税表或者学校的家长同意书以PDF发过来,有人把签名栏打印出来,或者在一张白纸上签个名,然后因为家里没有扫描仪,就用手机拍了下来。拍回来的是一块纸:靠窗那侧亮,角落发灰,被顶灯照得略偏暖,还带着持机的手投下的一道淡影。把这块纸直接丢进文档,会在页面上留下一片明显的浅色补丁,而它读起来就是它本来的样子。文档真正需要的只是笔画,别的什么都不要,这样签名周围的正文和横线才能透出来,就像当初直接签在打印件上一样。这也是通用去背景工具不适合这件事的原因:它去掉的是纸张背后的东西,而不是墨迹背后的东西。相对阈值之所以重要,出于同样实际的理由。单一固定亮度的分界线可以为某一张照片调好,然后在两分钟后换个角度拍的下一张上失效,因为第二张照片阴影角落里的纸,比第一张明亮角落里的墨还要暗。把每个像素与它自己的邻域比较,让这个设置可以迁移,也就是说您可以签五份表格、在同一盏乱七八糟的灯下把五张全拍了,然后一次跑完,不用重新调参。一切都在浏览器中完成,这一点在这里比在多数工具上更要紧:签名是极少数几种图片之一,把副本上传到别人的服务器是实打实的风险,而不是理论上的风险。

按局部纸张亮度作比较,不均匀的灯光和阴影都干扰不了它
发黄、偏暖或不是纯白的纸也能直接处理,无需先做色彩校正
笔画默认压成接近纯黑,也可按需保留原本的笔色
透明PNG叠在合同上不会留下一块可见的纸片

如何得到干净的签名抠图

结果取决于纸张怎么拍,比取决于参数怎么调要多得多,所以前两步最关键。

1

用深色笔在一张无横线的白纸上签名,正上方平拍,让签名占满大半画面——离得太远,每一笔上的像素太少,阈值就切不干净

2

上传照片或扫描件;不会发送到任何地方,文件在本地读取

3

点击“提取签名”,然后分别在白色和深色背景板上检查结果——浅色光晕只有在深色底上才看得出来

4

笔画断裂就调高墨迹阈值,纸张颗粒露出来就调低,然后下载透明PNG

常见问题

因为AI模型找的是主体,而在一张签好字的纸的照片里,主体就是那张纸。跑一遍的结果是一张被干净抠出来的纸,签名仍然待在不透明的白底上,这和您需要的恰好相反。本页面改为测量每个像素周围纸张的亮度,只保留明显比它更暗的部分。如果您那张纸恰好是拍在带花纹的桌面上,或者是举在房间里拍的,可以打开可选的纸张分离步骤,它会先跑AI模型把场景去掉,再对纸张应用墨迹阈值。
影响不大,而这正是本页面主要为之设计的情况。单一固定亮度分界线搞不定它:在强光照片里,阴影角落的纸可能比受光角落的墨还暗,所以没有任何一个数字能把两者分开。这里的每个像素都是与它自己周围一个大窗口的平均亮度比较,因此阴影角落是拿阴影里的纸来评判的。极硬的光线、且有一道硬阴影边缘正好横穿签名的情况仍然值得避开,但普通台灯造成的渐变根本不需要任何调整。
这在这套方法下是预料之中且无法避免的。工具并不知道什么叫签名;它保留一切比周围纸张更暗的东西,而印刷文字、蓝色横线、方格、订书钉阴影或一道硬折痕都符合条件。解决办法在拍摄环节:签在一张空白无横线的纸上,或者在上传前把照片裁到只剩签名,让画面里没有别的东西。横格纸尤其值得避开,因为那些线的深浅通常和一笔淡墨很接近,任何阈值设置都分不开它们。
铅笔的深浅比墨水更接近纸面亮度,所以需要调高墨迹阈值——试着往上推,直到笔画填实。代价是纸张颗粒会同时开始被认出来,因为颗粒也比周围略暗。如果您手上只有铅笔签名,请尽可能用最高分辨率、在均匀光线下拍摄,这两点都能提高石墨与纸张之间的对比。深色圆珠笔或勾线笔的结果永远比铅笔干净。
凡是之后会被缩小的(也就是大多数用途),设在20左右。这样每一笔外侧会保留一条半透明带,签名缩到签名栏那么小的时候,看起来仍然像钢笔字而不是一个带锯齿的形状。只有当您确实需要严格的两级图像时才降到0,例如要把这个PNG喂给某个把任何半透明都当作不透明的系统。超过40左右,这条带子会开始把真正的纸张也拉进来,笔画就显得糊了。
可以,打开“保留原本的笔色”即可。它默认关闭,是因为手机拍到的黑色墨水很少真的是黑的:相机会以纸张为准做白平衡,结果返回一种发灰泛褐的颜色,放到白色文档上就显得褪色。压成接近纯黑在常见情况下能修好这个问题。对于蓝色、红色或任何有意为之的彩色墨水,保留扫描到的颜色才是正确选择,不过您得到的是相机记录下来的颜色,而不是墨水真正的颜色。
哪里都不去。图片在页面内用浏览器画布完成解码、阈值处理和重新编码,没有任何副本被发往服务器。唯一的例外是可选的纸张分离步骤,它会在首次使用时把一个AI模型文件下载到您的设备,之后同样在本地运行;即便如此,图片本身也不会被传输。这一点对签名尤其值得说明白,因为签名是极少数几种图片之一,服务端多出一份副本是真实的问题,而不是假想的问题。
三者最后都给出一张透明PNG,但解决的问题不同。去除背景和透明背景都运行AI主体分割,面向的是有主体的照片——一个人、一件商品、一个物体。本页面默认不做任何分割,面向的是平面文档,您想留下的是浅色表面上细而深的痕迹。如果您想用鼠标或手指画一个签名,而不是把纸上的签名拍下来,那么签名手写页面才是更合适的起点。

更多图片工具

探索其他强大的图片编辑工具

压缩图片

减小文件大小

调整大小

更改尺寸

裁剪图片

裁剪区域

格式转换

转换格式

照片编辑器

编辑照片

旋转图片

旋转图片

镜像翻转

水平/垂直翻转

添加水印

添加水印

添加边框

为图片加边框

圆角裁剪

添加圆角效果

滤镜调整

亮度对比度等

模糊面部

隐藏面部

马赛克

局部打码

去除背景

去除背景

提升质量

AI 提升

添加文字

在图片上加字

图片拼接

拼接多张图片

HTML 转图片

网页转图片

GIF 转图片

提取序列帧

裁剪空白

移除空白边缘

批量重命名图片

安全地批量修改文件名

圆形裁剪

将图像裁剪为圆形

黑白

将图像转换为灰度

分割图像

将图像切割为网格

合并图像

将多张图像合并为一张

更改DPI

设置图像DPI元数据

图像转Base64

将图像编码为Base64

图片转PDF

将多张图片合并成一个PDF

HEIC 转 JPG

将 iPhone 的 HEIC 照片转换为 JPG

EXIF 元数据移除器

查看并清除照片中隐藏的元数据,包括 GPS 位置信息

Favicon 生成器

全套图标加 HTML

色板

从图片中提取颜色

Base64转图片

把Base64解码还原成图片

HEIC转PNG

把iPhone的HEIC照片转成无损PNG

文字穿插图片

把文字放到照片主体背后,全程在浏览器中完成

取色器

获取任意像素的HEX、RGB和HSL值

签名制作

手写签名并下载为透明PNG

透明背景制作

把背景变成透明

表情包生成器

为图片加上上下两行大字

图片放大

把图片放大 2 倍、3 倍或 4 倍

PDF 转 JPG

把 PDF 页面转成 JPG 图片

PDF 转 PNG

把 PDF 页面转成 PNG 图片

证件照制作

把 ID 照裁切到官方尺寸