超简单的Python库:两种给图片添加水印的方式


方式一:PIL库


介绍

**Python Imaging Library (PIL)**是Python提供的一个很强大的图像处理库。这个库提供了一些图像处理的核心功能,很适合进行简单的图像操作和快速原型制作。使用PIL给图片添加水印也非常的简单。

安装

pip install pillow

代码示例

from PIL import Image``from PIL import ImageDraw``from PIL import ImageFont``   ``   ``def add_watermark(input_image_path, output_image_path, watermark_text, transparency):`    `# 打开输入图片,将其转换为RGBA模式(如果需要)`    `base_image = Image.open(input_image_path).convert("RGBA")``   `    `# 设置水印的字体和大小`    `font = ImageFont.truetype("msyh.ttc", 48)`    `text_color = (255, 255, 255, transparency)``   `    `# 在透明图片上绘制水印`    `watermark_text_obj = Image.new('RGBA', base_image.size, (0, 0, 0, 0))`    `draw = ImageDraw.Draw(watermark_text_obj)`    `base_image_width, base_image_height = base_image.size`    `for x in range(0, base_image_width, base_image_width // 4):`        `for y in range(0, base_image_height, base_image_height // 4):`            `draw.text((x, y), watermark_text, font=font, fill=text_color)``   `    `# 旋转水印文本对象`    `watermark_text_obj = watermark_text_obj.rotate(30, expand=True)``   `    `# 创建一个与图片相同大小的透明图层`    `watermark_layer = Image.new("RGBA", base_image.size, (0, 0, 0, 0))`    `watermark_layer.paste(watermark_text_obj, (-20, -20), mask=watermark_text_obj)``   `    `# 将水印层和底图合成`    `watermarked_image = Image.alpha_composite(base_image, watermark_layer)``   `    `# 转换回原始图片模式并保存`    `watermarked_image = watermarked_image.convert("RGB")`    `watermarked_image.save(output_image_path)``   ``   ``if __name__ == "__main__":`    `add_watermark("demo.jpg", "demo_water.jpg",`                  `"程序猿知秋", transparency=160)

注: 如果水印的文字是中文的,需要使用中文对应的字体

具体可以使用的字体可自行在系统中查看

**Windows系统:**C:\Windows\Fonts\` 文件夹中

Linux或macOS系统:`/Library/Fonts/`(macOS)或 `/usr/share/fonts/`(Linux)文件夹中

最终效果
在这里插入图片描述

方式二:filestools库

介绍

Filestools是一款强大而实用的Python库,是管理具体文件和所在文件夹的绝佳工具。它的功能包括在文件系统中创建,删除,复制,移动文件及目录,以及查询文件的基础元数据,比如大小,修改时间等等。 最重要的是它还可以帮助我们来给图片添加水印。

安装

pip install filestools

简单示例(一行代码搞定)

`from watermarker.marker import add_mark``   ``"""``参数说明``file:待添加水印的图片(文件或目录)``mark:水印的文字``out:添加水印后的输出文件目录``color:水印字体的颜色,默认是 #8B8B1B``size:水印字体的大小,默认是50``opacity:水印字体的透明度,默认是 0.15, 取值范围:0~1``space:水印字体之间的间隔,默认是 75个空格``angle:水印字体的旋转角度,默认 30度``"""``   ``add_mark(file="demo.jpg",out="./output",mark="程序猿知秋"`         `,color="#FFFFFFA0",opacity=0.5,angle=30,space=100,size=48)`         

输出结果

在这里插入图片描述

两种方式的优劣

使用filestools库

优势:

  • **简单易用:**filestools库可以轻松地加载图像并添加水印,无需编写大量代码。

  • **适用于批量操作:**filestools库可以批量处理多个文件,非常适合针对一组图像应用相同的水印。

劣势:

  • **功能有限:**filestools库的功能相对有限,只能对文件结构进行一些基本的处理,例如添加水印。

  • 不支持多种颜色空间和格式:对于具有不同颜色空间和格式的图像,filestools库可能无法很好地处理。

使用PIL库:

优势:

  • **功能强大:**PIL库是一个功能强大、成熟的图像处理库,可以实现各种复杂的图像操作,包括绘制、裁剪、滤镜等。

  • **强大的颜色空间和文件格式支持:**PIL库支持对各种颜色空间和文件格式的图像处理,包括RGB、RGBA、CMYK等,以及JPEG、PNG、GIF等格式。

劣势:

  • **学习成本相对较高:**相比于filestools,PIL库的学习曲线较陡,可能需要花费较多时间熟悉其功能和使用方法。

  • **不支持批处理:**尽管可以使用Python循环遍历多个文件或图像,但PIL库本身并不直接支持批量处理。

总结:****filestools库适用于简单的用途,而PIL库适合复杂和灵活的图像处理任务。

---------------------------END---------------------------

题外话

“不是只有程序员才要学编程?!”

认真查了一下招聘网站,发现它其实早已变成一项全民的基本技能了。

连国企都纷纷要求大家学Python!
在这里插入图片描述

世界飞速发展,互联网、大数据冲击着一切,各行各业对数据分析能力的要求越来越高,这便是工资差距的原因,学习编程顺应了时代的潮流。

在这个大数据时代,从来没有哪一种语言可以像Python一样,在自动化办公、爬虫、数据分析等领域都有众多应用。

更没有哪一种语言,语法如此简洁易读,消除了普通人对于“编程”这一行为的恐惧,从小学生到老奶奶都可以学会。

《2020年职场学习趋势报告》显示,在2020年最受欢迎的技能排行榜,Python排在第一。
在这里插入图片描述

它的角色类似于现在Office,成了进入职场的第一项必备技能。

如果你也想增强自己的竞争力,分一笔时代的红利,我的建议是,少加点班,把时间腾出来,去学一学Python。

因为,被誉为“未来十年的职场红利”的Python,赚钱、省钱、找工作、升职加薪简直无所不能!

目前,Python人才需求增速高达**174%,人才缺口高达50万,**部分领域如人工智能、大数据开发, 年薪30万都招不到人!在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值