这个工具可以将比较工整的白底黑字手写签名照片转换成背景透明的签名照片,从而可以在电子版的文件上通过覆盖一层图片来实现手写签名的效果。

代码如下:

from PIL import Image
import os
import time
import numpy as npdef sign(fp, threshold=120,region=None):'''# fp: 需要转换的图片路径# threshold: 图像二值化阈值,灰度大于阈值则变成255(白色),否则则变成0(黑色)# region: 裁剪图像的范围(x0, y0, x1, y1)'''# 读取图片img = Image.open(fp)# 保存为灰度图片img = img.convert('L')# 转换为数组aimg = np.asarray(img)# 二值化aimgb = np.where(aimg>threshold, 255, 0)# 生成alpha通道aalpha = np.where(aimg>threshold, 0, 255)# 将数组转换为Image对象imgb = Image.fromarray(np.uint8(aimgb))alpha = Image.fromarray(np.uint8(aalpha))# 为二值化的Image对象添加alpha通道imgb.putalpha(alpha)    # 也可以对原图添加alpha通道,这样就可以保留原始笔迹颜色# 剪切图像(x0, y0, x1, y1)if region:imgb = imgb.crop(region)# 储存图片path, _ = os.path.split(fp)fname_ = 'sign_{:.0f}.png'.format(time.time()*100)imgb.save(os.path.join(path, fname_))

这个函数的工作原理就是将签名图片二值化,然后插入alpha通道,使白色的地方变成全透明。图像二值化的阈值参数threshold小,签名照片的背景干扰程度越小,但是签名部分也可能会损失一部分细节。

下面来举个例子,我在网上找到了一个号称是梁朝伟的签名:

可以看出四个叫比较黑,下面还有浅色的签字。

当threshold分别取30和80时,会生成如下图片:

可以看出,当threshold=30时,签名部分的细节有损失,看着像签字笔没墨水一样;而threshold=80时,签字没毛病,但是就会出现背景干扰(这里是暗角)。

我们可以进一步调低threshold参数,或者可以简单粗暴地用画图板把原照片上黑角的位置抹白。我觉得一般用用的话,后者比较方便,当然也可以添加代码来识别黑角(比如可以计算像素的梯度,黑角部分的像素点虽然深,但是整体梯度小)。

像这样就会好很多。。

雕虫小技 - 签名图片生成器相关推荐

  1. 这篇文章告诉你艺术签名自动生成器有哪些

    当今社会无论是大人还是小孩:无论是在工作中还是学习上,签名都是我们经常要做的事情,例如:新课本写上名字.孩子成绩单签名.合同签订等等.但是并不是所有人签出来的名字都很好看,很多人跟我一样都是先借助一些 ...

  2. java 图片生成器_Java实现的图片生成器

    一.本图片生成器具有以下功能特性: 1.可以设置图片的宽度.高度.外框颜色.背景色: 2.可以设置图片字体的大小.名称.颜色: 3.可以设置输出图片的格式,如JPEG.GIF等: 4.可以将图片存储到 ...

  3. 使用Adobe Acrobat为PDF文件添加签名(图片+签名)

    1.使用Adobe Acrobat打开PDF文件,并切换到工具页,点击证书 2.选择数字签名,然后在文档中要签名的位置上单击并绘制一个区域 3.创建签名证书,点击"签名为:"下拉框 ...

  4. java awt生成签名图片消除锯齿化

    项目场景: 在一个线上互联网医院中,需要生成电子处方图片,图片里面会有医生的手写签名.通过java.awt的Graphics2D方式来生成处方图片,并将手写签名的图片导入其中. 问题描述: 但是在签名 ...

  5. Excel二维码图片生成器

    Excel二维码图片生成器. 它可以将excel文件的数据,每行数据生成一张二维码图片,并保存到电脑.软件无需安装,解压后即可直接使用,无需联网,操作简便快捷. 下载地址:点此下载 步骤1:导入事先制 ...

  6. 电子签名生成的图片为空白,以及生成透明底签名图片转为白色底

    电子签名如何解决生成的图片为空白的问题,以及生成透明底签名图片转为白色底 一.生成的图片为空白 项目有个新需求需要加电子签名,在实现的过程中遇到了许多问题,现用的插件笔画延迟非常严重,好不容易做完之后 ...

  7. 【实战】恶搞图片生成器

    我们要做什么 随着"微信朋友圈"的日益火爆,朋友圈晒图已成为越来越多的人放松娱乐的休闲方式.本实例我们就来开发一个"恶搞图片生成器",生成一张有意思的图片,发布 ...

  8. laya 怎么生成签名_手写签名在线生成器一笔签-手写签名在线生成器微信

    签名设计地址:www.mgs2s.com(复制到浏览器打开)工具集成签名设计免费版下载,签名设计免费版在线立即生成,简单简体签名设计免费版.最新方便设计公文签名设计颜色保存分享免费版 1.个别字体样式 ...

  9. pdfbox 去除签名 保留签名图片

    需求描述 最近来了一个需求,客户要在 10 份 PDF 上使用电子签名,签完了以后还要合并再进行一次总的签名 众所周知,电子签名当文档本身内容发生变化后,它的 hash 值就变了,和电子签名存储的 h ...

  10. 用photoshop制作电子版签名图片

    from http://www.smartsys.cn/faq-2.html 第一步:PS中打开签名图片 在一张空白的纸上签上自己的名字,用扫描仪或拍照,将它储存成*.jpg格式的文件.打开PS [文 ...

最新文章

  1. Android EditText
  2. 彩色图如何转换成灰度
  3. RPM安装包-Spec文件參数具体解释与演示样例分析
  4. 【Qt】2D绘图之绘制图片
  5. 我想站在巨人的肩上——记成都之行
  6. 线性分类器——Fisher线性判别
  7. Unity app 如何打开商店
  8. 八皇后问题(详解带注释)
  9. Python pandas 根据指定条件筛选数据
  10. ElasticSearch已有字段添加Fields
  11. 编写bootstrap响应式页面 就这么简单
  12. Docker一键部署cloud-torrent实现不限速下载BT文件
  13. C语言去掉字符串首尾空格,C语言实现去除字符串首尾空格
  14. 【观察】首款7nm芯片服务器亮相,联想驱动数据中心再创新
  15. Python混合图片操作
  16. Maven创建聚合项目
  17. JavaScript 数据类型的转换
  18. 超级账本(版本2.2):编写第一个应用
  19. 7位世界著名的制图师及其相关的地图介绍
  20. python分析每月销售数据_时间序列ARIMA模型详解:python实现店铺一周销售量预测...

热门文章

  1. geojson 河流_openlayers之点,线,面(以城市,河流,省份为例,分别对应点线面)...
  2. 通过Java实现一个企业人事管理系统
  3. 【常用办公软件有那些】万彩办公大师教程丨屏幕放大镜的使用
  4. socks5 转换为 http 代理(使用privoxy)
  5. 基于 VEthernet 轻松实现 tun2socks 示例程序
  6. Win10环境下VMware安装Mac OS虚拟机并在虚拟机中安装xcode
  7. 绝对纯净:龙行天下GHOST XP SP3软件自选安装纯净版 2010 V13.0 2010年6月
  8. 专访Wunderlist主设计师Jan Martin:永远不要盲目跟风流行趋势
  9. tlwn726n无线网卡Linux驱动,tl-wn726n无线网卡驱动下载
  10. Nordic--nrf52832--FDS(一)基本介绍