网站开发设计书籍,域名怎么申请,中国足彩网竞彩推荐,网络科技公司 网站建设---------------Pillow教程集合---------------
Python项目18#xff1a;使用Pillow模块#xff0c;随机生成4位数的图片验证码
Python教程93#xff1a;初识Pillow模块#xff08;创建Image对象查看属性图片的保存与缩放#xff09;
Pillow教程02#xff1a;图片的裁…---------------Pillow教程集合---------------
Python项目18使用Pillow模块随机生成4位数的图片验证码
Python教程93初识Pillow模块创建Image对象查看属性图片的保存与缩放
Pillow教程02图片的裁剪复制粘贴旋转角度翻转降噪滤镜平滑、锐化、边缘检测
Pillow教程03图像处理的基本步骤分离split合并merge混合blendcomposite遮罩
1.ImageDraw在图像上绘制各种图形如直线、矩形、椭圆、多边形等和文本的功能。使用ImageDraw你可以轻松地在图像上添加标注、绘制形状或进行其他自定义的绘图操作。
# Author : 小红牛
# 微信公众号WdPython
from PIL import Image, ImageDraw# 1.创建一个新的空白图像
image Image.new(RGB, (200, 200), white)# 2.创建一个可以在给定图像上绘图的Draw对象
draw ImageDraw.Draw(image)# 绘制一条直线参数为起点和终点的坐标
draw.line((0, 0, 200, 200), fillred, width2)# 绘制一个矩形参数为左上角和右下角的坐标
draw.rectangle([(50, 50), (150, 150)], fillblue, outlineyellow)# 绘制一个椭圆参数为左上角的坐标、宽和高
draw.ellipse([(50, 50), (150, 150)], fillgreen, outlineblack)# 绘制一个多边形参数为各个顶点的坐标列表
polygon_points [(50, 50), (100, 50), (100, 100), (50, 100)]
draw.polygon(polygon_points, fillpurple, outlinewhite)# 绘制文本参数为文本的左上角坐标、文本内容和颜色
text Hello, Pillow!
draw.text((60, 30), text, fillblack)# 3.保存图像
image.save(draw.png)2.ImageFont.truetype()是Pillow库中ImageFont模块的一个方法用于加载TrueType字体文件并创建一个字体对象。此方法允许用户从指定的字体文件中加载字体并为其设置特定的大小以便在图像绘制中使用。ImageFont.truetype()方法的常见参数包括
fontTrueType或OpenType字体文件的路径。如果在给定的文件名中找不到字体文件加载程序可能还会在特定的目录中查找如Windows系统下的fonts/目录。 size请求的字体大小以磅为单位。 index要加载的字体索引默认为第一个可用的字体。 encoding使用的字体编码默认为Unicode。
from PIL import ImageFont
# 加载字体
font ImageFont.truetype(arial.ttf, size15)
font2 ImageFont.truetype(simkai.ttf, size50)计算机本地中文字体文件有哪些
微软雅黑msyh.ttc这是一种常见的无衬线字体设计用于屏幕阅读具有清晰易读的特性。
黑体simhei.ttc这是一种传统的中文字体常用于正式文档和印刷品。
宋体simsun.ttc宋体是一种具有传统特色的中文字体常用于书籍、报纸和杂志等出版物。
楷体simkai.ttf楷体模仿了手写汉字的风格具有古朴典雅的特点。
......等等.........3.在原图的右下角添加白色的文字水印 # Author : 小红牛
# 微信公众号WdPython
from PIL import Image, ImageDraw, ImageFont# 1.加载原图
image Image.open(example.png)# 2.创建Draw对象
draw ImageDraw.Draw(image)# 3.设置水印文字内容
watermark_text 刘亦菲白鹿
# 设置水印的位置右下角显示
text_position (image.width-400, image.height-150)
# 设置水印的颜色白色
text_color (255, 255, 255)# 4.设置水印文字的字体和大小
# 如果不指定字体可以使用默认字体但通常需要指定字体大小和路径
font ImageFont.truetype(simkai.ttf, size50)# 绘制水印文字
# 如果指定了字体传入font参数否则直接传入文字内容和位置
draw.text(text_position, watermark_text, filltext_color, fontfont)# 5.保存带有水印的图像
image.save(watermark.png)4.添加图片水印图片水印相比文字水印的操作要更人性化一点水印文字长短不同需要重新计算水印的位置。使用图片水印就可以自动计算水印的位置。
代码思路解析准备一张原图和新建一个水印图并把图片格式设为RGBA模式 。pillow版本为10.以上请使用textbbox来获取文本的大小低版本的可使用draw.textsize来获取水印文字的大小然后基于这个大小设置水印文字的位置。接着我们在水印图像上绘制了带有透明度的文本最后将原始图像和带有水印文字的图像通过Image.alpha_composite进行alpha合成生成带有水印的最终图像。
# 使用draw.textsize方法获取文字的大小
draw ImageDraw.Draw(watermark_image)
#设置文本文字大小
text_width,text_height draw.textsize(text,fontfont)
print(text_width,text_height)Image.alpha_composite() 方法会考虑这个alpha通道并相应地合成水印到原始图像上。最后我们使用convert 方法将结果图像转换回原始图像的模式如果原始图像不是RGBA模式的话
# -*- coding: utf-8 -*-
# Author : 小红牛
# 微信公众号WdPython
from PIL import Image, ImageFont, ImageDrawfont ImageFont.truetype(simkai.ttf, size50)def add_watermark(original_images, water_text, fontfont):# 1.给水印添加透明度因此需要转换图片的格式original_image original_images.convert(RGBA)# 按照原图的尺寸新建一个RGBA模式的白色图片watermark_image Image.new(RGBA, original_image.size, (255, 255, 255, 0))print(1.get原图的宽高, original_image.size)# 2.pillow版本为10以上请使用textbbox来获取文本的大小draw ImageDraw.Draw(watermark_image)bbox draw.textbbox((0, 0), water_text, fontfont)text_width bbox[2] - bbox[0]text_height bbox[3] - bbox[1]print(2.水印文字的大小, text_width, text_height)# 3.计算水印显示的位置这里假设放在右下角# 获取原始图像的宽高original_width, original_height original_image.sizeposition (original_width - text_width-50, original_height - text_height-50)print(3.计算水印显示的位置, position)# 4.在position位置绘制文本水印设置水印颜色白色和透明度半透明draw.text(position, water_text, fontfont, fill(255, 255, 255, 128))# 5.将原图片与带有水印文字的图像进行alpha合成water_image Image.alpha_composite(original_image, watermark_image)return water_image# 原始图像
image Image.open(new_image2.png)
# 添加水印文字
image_water add_watermark(image, 图片水印刘亦菲白鹿)
# 保存水印图
image_water.save(watermark2.png)完毕感谢您的收看
----------★★历史博文集合★★----------
我的零基础Python教程Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame 图像处理