效果

python marker.py -f ./input/test.png -m '添加水印'

功能

使用知名python图片处理库PIL,为图片添加文字水印。

实现

步骤:根据文字生成水印图片;将水印图半透明并覆盖在原图上。

1. 将文字转换成水印图片

defgen_mark(args):#字体宽度

length = len(args.mark) *args.size#创建水印图片(宽度、高度)

mark = Image.new(mode='RGBA', size=(length, args.size))#生成文字

draw = ImageDraw.Draw(im=mark)

draw.text(xy=(0, 0),

text=args.mark, #水印文字

fill=args.color, #文字颜色 '#008B8B'

font=ImageFont.truetype(TTF_FONT, #文字字体

size=args.size)) #font_size 文字大小

deldraw#裁剪图片边缘空白区域

bg = Image.new(mode='RGBA', size=mark.size)

diff=ImageChops.difference(mark, bg)delbg

bbox=diff.getbbox()ifbbox:

mark=mark.crop(bbox)#设置水印透明度

set_opacity(mark, args.opacity)#得到水印文字大小

print(mark.size)

此处省略...

2. 将水印图片覆盖在原图上

defmark_im(im):'''在im图片上添加水印 im为打开的原图'''

#计算斜边长度

c = int(math.sqrt(im.size[0]*im.size[0] + im.size[1]*im.size[1]))#以斜边长度为宽高创建大图(旋转后大图才足以覆盖原图)

mark2 = Image.new(mode='RGBA', size=(c, c))#在大图上生成水印文字,此处mark为上面生成的水印图片

y, idx =0, 0while y

x = -int((mark.size[0] + args.space)*0.5*idx)

idx= (idx + 1) % 2

while x

mark2.paste(mark, (x, y))

x= x + mark.size[0] +args.space

y= y + mark.size[1] +args.space#将大图旋转一定角度

mark2 =mark2.rotate(args.angle)#在原图上添加大图水印

if im.mode != 'RGBA':

im= im.convert('RGBA')

im.paste(mark2,#大图

(int((im.size[0]-c)/2), int((im.size[1]-c)/2)), #坐标

mask=mark2.split()[3])delmark2return im

代码

python给图片加半透明水印_图片添加半透明文字水印 Python相关推荐

  1. jquery 当页面图片加载之后_图片的懒加载和预加载

    一.懒加载 [1.1]什么是懒加载? 懒加载也就是延迟加载,指的是在长网页中延迟加载图像,是一种很好优化网页性能的方式.当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1 ...

  2. 图片加载失败替换图片解决方案

    图片加载失败在不同浏览器表现有差异,比如google可能会一片空白.img的宽高是0*0,ie会在图片位置会出现一个碎片图标,火狐会显示一个边框像这样: 一个页面如果很多这种好难看,一般会用默认图片替 ...

  3. img标签图片加载失败显示图片

    img标签图片加载失败显示图片 onerror="οnerrοr=null;src='../../image/community/initialize_img.png'"

  4. 如何给视频添加动态文字水印?

    如何给视频添加动态文字水印?添加水印是视频制作环节中最后的一个步骤,视频添加水印可以有效防止视频被盗用,还能有效保护自己的版权.有时候我们希望给视频添加动态的文字水印,比例文字水印在视频中上下或者左右 ...

  5. 用PDF格式协议的方式给PDF文档添加透明文字水印

    用PDF格式协议的方式给PDF文档添加透明文字水印 *有情提示:本文适合有一定pdf格式协议基础的人阅读. 一.生成一个HelloWorld.pdf 首先,为了方便介绍,我们先写一个Helloworl ...

  6. 七牛 java 加水印_图片水印处理(watermark)

    注意: watermark 接口支持的最大 gif 帧数为 200,超过 200,处理结果只返回原图. 图片水印 接口规格 注意: 接口规格不含任何空格与换行符. watermark/1 /image ...

  7. 服务器图片加载慢_页面提高性能利器_懒加载

    哈喽,艾瑞巴蒂,现在搜狗商城产品需求已经趋于稳定,已经开始逐步的着手进行页面的性能提升工作.这不最近小编正在进行"页面懒加载需求"的功能测试.小编第一次听说这个名词,让我们一起了解 ...

  8. python 图片背景前景分离_【绝了】用 Python 把朋友头像变表情包!

    正文 在日常生活中,我们经常会存取一些朋友们的丑照,在这个项目中,我们以萌萌哒的熊猫头作为背景,然后试着在背景图上加入朋友们的照片,效果如下图所示. 实现步骤 导入朋友的照片(前景照片): 处理前景照 ...

  9. jquery 当页面图片加载之后_在浏览器地址栏输入地址到页面渲染完成发生了什么?(下)...

    上一篇讲了前三步,本篇从第四步开始.下面是正文: 四.进行tcp三次握手,建立tcp连接. 简述一下,第三步我们找到了目标ip,并获得了服务器ip的mac地址.此时浏览器就会请求和服务器连接,用来传输 ...

最新文章

  1. Deep Residual Learning for Image Recognition个人有感
  2. c++中介者模式mediator
  3. 试验设计与matlab数据分析 下载,试验设计与MATLAB数据分析(附光盘)
  4. winform直接控制云台_速学指南,2分钟学会Feiyu pocket口袋云台的隐藏功能操作
  5. Android投屏(屏幕共享)设计需要考虑的关键因素
  6. GitHub年度报告出炉:中国开源贡献仅次美国、Python成第二热门语言
  7. Hive记录-Hive on Spark环境部署
  8. Java Web学习笔记13:AJAX基础
  9. 干货分享:vue2.0做移动端开发用到的相关插件和经验总结(2)
  10. 解决报错OMP: Error #15: Initializing libiomp5.dylib, but found libomp.dylib already initialized
  11. 谷歌浏览器设置请求头_2020年 谷歌SEO优化 十大技巧(四)
  12. 代码质量度量标准_Google研发度量改进实践
  13. linux img提取文件系统,Linux下 mount IMG文件提示“您必须制定文件系统类型”解决方法...
  14. Arcmap实现航线按日期分段
  15. 商业的10个最佳Android应用程序模板
  16. 一种基于敏感度可调的语音情感识别方法及系统
  17. RDS数据库cpu过高分析
  18. 2021.06.29【R语言】丨png转pdf批量生成
  19. Linux:安装 telnet 命令
  20. 关于阿里腾讯京东美团提供的学生云主机总结

热门文章

  1. js获取指定字符前/后的字符串简单实例
  2. 人工智能的软件研发管理系统
  3. 单服务器node.js和php性能测试
  4. iOS开发学习之YYKit中YYText的深入解析,YYTextShadow的代码解析
  5. Word7中尾部空格不能显示下划线的解决方法
  6. Python爬虫学习①:
  7. 微信小程序云开发完整案例
  8. 差距不止一星半点,Github星标85K的性能优化法则圣经
  9. LTE与VOLTE基础知识(1)
  10. Spring Boot 注解原理,自动装配原理,图文并茂,万字长文!