python给图片加半透明水印_图片添加半透明文字水印 Python
效果
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相关推荐
- jquery 当页面图片加载之后_图片的懒加载和预加载
一.懒加载 [1.1]什么是懒加载? 懒加载也就是延迟加载,指的是在长网页中延迟加载图像,是一种很好优化网页性能的方式.当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1 ...
- 图片加载失败替换图片解决方案
图片加载失败在不同浏览器表现有差异,比如google可能会一片空白.img的宽高是0*0,ie会在图片位置会出现一个碎片图标,火狐会显示一个边框像这样: 一个页面如果很多这种好难看,一般会用默认图片替 ...
- img标签图片加载失败显示图片
img标签图片加载失败显示图片 onerror="οnerrοr=null;src='../../image/community/initialize_img.png'"
- 如何给视频添加动态文字水印?
如何给视频添加动态文字水印?添加水印是视频制作环节中最后的一个步骤,视频添加水印可以有效防止视频被盗用,还能有效保护自己的版权.有时候我们希望给视频添加动态的文字水印,比例文字水印在视频中上下或者左右 ...
- 用PDF格式协议的方式给PDF文档添加透明文字水印
用PDF格式协议的方式给PDF文档添加透明文字水印 *有情提示:本文适合有一定pdf格式协议基础的人阅读. 一.生成一个HelloWorld.pdf 首先,为了方便介绍,我们先写一个Helloworl ...
- 七牛 java 加水印_图片水印处理(watermark)
注意: watermark 接口支持的最大 gif 帧数为 200,超过 200,处理结果只返回原图. 图片水印 接口规格 注意: 接口规格不含任何空格与换行符. watermark/1 /image ...
- 服务器图片加载慢_页面提高性能利器_懒加载
哈喽,艾瑞巴蒂,现在搜狗商城产品需求已经趋于稳定,已经开始逐步的着手进行页面的性能提升工作.这不最近小编正在进行"页面懒加载需求"的功能测试.小编第一次听说这个名词,让我们一起了解 ...
- python 图片背景前景分离_【绝了】用 Python 把朋友头像变表情包!
正文 在日常生活中,我们经常会存取一些朋友们的丑照,在这个项目中,我们以萌萌哒的熊猫头作为背景,然后试着在背景图上加入朋友们的照片,效果如下图所示. 实现步骤 导入朋友的照片(前景照片): 处理前景照 ...
- jquery 当页面图片加载之后_在浏览器地址栏输入地址到页面渲染完成发生了什么?(下)...
上一篇讲了前三步,本篇从第四步开始.下面是正文: 四.进行tcp三次握手,建立tcp连接. 简述一下,第三步我们找到了目标ip,并获得了服务器ip的mac地址.此时浏览器就会请求和服务器连接,用来传输 ...
最新文章
- Deep Residual Learning for Image Recognition个人有感
- c++中介者模式mediator
- 试验设计与matlab数据分析 下载,试验设计与MATLAB数据分析(附光盘)
- winform直接控制云台_速学指南,2分钟学会Feiyu pocket口袋云台的隐藏功能操作
- Android投屏(屏幕共享)设计需要考虑的关键因素
- GitHub年度报告出炉:中国开源贡献仅次美国、Python成第二热门语言
- Hive记录-Hive on Spark环境部署
- Java Web学习笔记13:AJAX基础
- 干货分享:vue2.0做移动端开发用到的相关插件和经验总结(2)
- 解决报错OMP: Error #15: Initializing libiomp5.dylib, but found libomp.dylib already initialized
- 谷歌浏览器设置请求头_2020年 谷歌SEO优化 十大技巧(四)
- 代码质量度量标准_Google研发度量改进实践
- linux img提取文件系统,Linux下 mount IMG文件提示“您必须制定文件系统类型”解决方法...
- Arcmap实现航线按日期分段
- 商业的10个最佳Android应用程序模板
- 一种基于敏感度可调的语音情感识别方法及系统
- RDS数据库cpu过高分析
- 2021.06.29【R语言】丨png转pdf批量生成
- Linux:安装 telnet 命令
- 关于阿里腾讯京东美团提供的学生云主机总结