python简单代码处理图片的这段代码怎么改?

前面内容,我们了解了使用Pillow这个模块处理图片的一些方法,感兴趣的小伙伴可以参考下面:街道办要求很苛刻,别着急,经典python图像处理库Pillow显身手!里面对Pillow模块的使用及模块提供的方法做了详细的介绍。今天,我们来看下如何使用Pillow模块来为我们的图片批量添加水印,开始之前,我们先看看效果。效果展示这里,我们从网上down了一幅文字图片,我们使用代码在这个图片左上角添加文字:Python高手养成。效果如下:原图片添加水印后的图片按照我的节奏来吧!【准备一些参数】我们要添加什么内容的水印?水印文字大小如何?颜色?字体?先来把这些属性定义好,如下:# 图片存储位置img_path = r'1.jpg'# 水印文字放置位置(10,10)pos = (10, 10)# 水印文字内容text = r'Python高手养成'# 水印文字颜色c = (255, 25, 15)# 水印文字字体,在系统Fonts目录中拷贝一个支持中文的字体,放在当前程序目录下fnt = ImageFont.truetype("STHUPO.TTF", 15)当然,ImageFont使用前先要导入它,如下:from PIL import ImageFont这样,我们准备好了一些程序中水印的属性。当然,最为重要的是,我们需要有一张命名为1.jpg的图片。【打开图像】然后,我们回顾一下打开图像的方法。from PIL import Imageimg = Image.open(img_path)这样,我们就得到了一个Image对象。【图像绘制对象】然后,我们需要利用这个img对象实例,来创建一个图像绘制对象PIL.ImageDraw.ImageDraw的实例,这个ImageDraw对象我们可以将它理解为一个在Image对象实例上画画的对象,它提供了一系列图像绘制接口。比如,绘制文本^-^from PIL import ImageDrawdraw = ImageDraw.Draw(img)draw.text(pos, text, font=fnt, fill=c)貌似上面的属性在这里都用上了!^-^【看看效果】下面,我们来看看效果。img.show()注意,这里使用的是img,而不是draw。当然,如果想存储为图片,则用下面的语句。img.save(save_name)将上面的代码整合一下,就得到了单张图片添加水印的代码。在介绍批量添加水印之前,我们先来看下如何获取一个文件夹中的图片(当然,是指很多图片咯)这个需求网上有很多,这里不再赘述了,我们介绍一种简单的方案。【使用os模块】我们知道,使用os.listdir(path)可以获取path路径下的所有文件及文件夹。试试看:列出文件夹下的内容import osfor file in os.listdir(r'D:\我的文档\桌面\待识别图片'): print(file)看下结果:>>>jpg2.jpg222.jpgmain.pySTHUPO.TTF测试文件夹成功识别,那么,我们只需要判断每一个文件(文件夹也无所谓)的后缀名是不是图片后缀即可。【完整代码】我们来看下完整代码,如下图:获取文件夹下所有图片文件名称列表这里返回了dir_path文件夹下(没有对文件夹进行判断,小伙伴自己加)所有图像文件的名称列表。到这里,程序就基本上完成了。但是想一想,程序基本功能都实现了。但我们的程序如何同用户交互呢?多种方式:命令行、图形界面、语音……我们来个简单点的,使用命令行交互!argparse的使用这里不再多做介绍了,前面很多内容涉及了。我们只介绍下一般步骤,帮助小伙伴回顾下。#导入模块import argparse
#创建实例
parser = argparse.ArgumentParser()
#添加参数parser.add_argument('-d', action='store', dest='directory', help='传入一个路径参数,为该路径下的所有图片添加水印!')#添加参数(表示版本信息)parser.add_argument('-v', '--version', action='version', version='%(prog)s 1.0')# 解析参数results = parser.parse_args()大致过程就是这样,剩下的是对参数的判断,if……else……之类,源代码里面有涉及,大家自行下载参考。这句标题是一句十足的废话,因为不存在完美的程序,任何程序都有可以改进的地方,但是,我们这个程序可以改进的地方很多。所以加了这句废话。水印的样式属性都是需要自定义的,我们可以把这些属性参数作为ArgumentParser对象实例的参数添加进去。这样,我们就可以只使用几个命令行参数,就可以自定义水印的颜色、字体、位置等等一些信息。上面的作业留给小伙伴自己解决了。今天源代码获取方式同样很简单,关注并私信“watermarker”获取。别忘了做今天的作业哦!想了解更多精彩内容,快来关注python高手养成

扫描并关注微信公众平台
微信公众平台微信公众平台
系统公告

关于小程序隐私保护指引设置的再次公告

关于语音消息转文字能力下线的通知
账号分类服务号
给企业和组织提供更强大的业务服务与用户管理能力,帮助企业快速实现全新的公众号服务平台。
查看详情开发文档
运营规范
服务市场订阅号
为媒体和个人提供一种新的信息传播方式,构建与读者之间更好的沟通与管理模式。
查看详情开发文档
运营规范
服务市场小程序
一种新的开放能力,可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
查看详情设计
运营
社区
服务市场小程序开发文档
小游戏开发文档
企业微信
原企业号
企业的专业办公管理工具。与微信一致的沟通体验,提供丰富免费的办公应用,并与微信消息、小程序、微信支付等互通,助力企业高效办公和管理。

我要回帖

更多关于 python简单代码 的文章

 

随机推荐