京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者:豆豆
来源:Python 技术
在我们的日常生活和工作中有不少场景需要简单处下理图片,很多人都是依赖 PS、美图秀秀等各种图像处理工具,殊不知在你打开软件的一瞬间 Python 就已经将图片处理完了。听起来是不是很神奇,正所谓是 Python 在手,啥也不愁。
Python 届处理图片最强的库是 PIL(Python Image Library),但由于该库只支持 2.x 版本,于是有一批乐于助人的程序员在此基础上做了扩展,出了一个兼容 3.x 的版本也就是 Pillow,因此,我们今天要用的库就是 Pillow。
老规矩,先通过 pip 安装到本地机器。
pip install Pillow
可以通过 Image 类来操控图片,比如打开一张图片并获取其基本信息。
from PIL import Image, ImageFilter, ImageEnhance, ImageDraw, ImageFont
img = Image.open('cat.jpg') print(F'图片大小为 {img.format}, 格式为 {img.size}, 模式为{img.mode}') # 图片大小为 JPEG, 格式为 (3458, 3456), 模式为 RGB
如果给目标图片转换格式,可以通过 save 函数来实现。
img.save("cat.jpg ")
之后你就会在同目录下得到一张扩展名为 png 的图片了。
直接通过 show 函数来显示图片。
img.show()
使用 crop 函数传入一个四元祖坐标来剪裁图片。
point = (1500, 800, 3000, 2300) img_crop = img.crop(point) img_crop.show()
通过 paste 函数传入合并的图像和坐标来实现两张图片的合并,那如果要合并多张图片呢,当然是直接调用多次就好了呀。
img.paste(img_crop, (0, 0), None) img.show(
有时候图像过大,这时候就显示出缩略图的必要了,可以通过 thumbnail 函数传入 size 来实现图片的缩小。
thumb_size = (345, 345) img.thumbnail(thumb_size) img.show()
使用 transpose 函数传入旋转角度来实现图片的翻转。
可以传入的参数有以下几种:
img_rotate = img.transpose(Image.ROTATE_90) img_rotate.show()
当然,我们还可以对图片做一些滤镜处理。
img_gaussianblur = img.filter(ImageFilter.GaussianBlur(30)) img_gaussianblur.show()
img_contour = img.filter(ImageFilter.CONTOUR) img_contour.show()
如果照片亮度不够,还可以对照片进行亮度增强。
color = ImageEnhance.Color(img) img_color = color.enhance(1.5) img_color.show()
当然,如果想对图片进行二次创作,比如添加一些辅助线,文字之类的可以用 ImageDraw 类来完成。
draw = ImageDraw.Draw(img) draw.line((0, 0) + img.size, fill=20, width=3) draw.line((0, img.size[1], img.size[0], 0), fill=200, width=3) img.show()
文字draw = ImageDraw.Draw(img)
font = ImageFont.truetype('AliPuHui-Bold.ttf', 200)
text = 'This is a cat!'
draw.text((450, 450), text, font=font, fill='pink')
img.show()
当然,如果有多行文字的话,直接加入换行符 n 即可。
今天派森酱带大家一起通过使用 Pillow 库对图片进行一些简单的操作,事实上 Pillow 库远不止此,将这些简单的操作进行组合甚至可以自创表情包,期待小伙伴们自行发掘更多更好玩的用法呀~
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在大数据时代背景下,海量行业数据亟需通过专业化工具挖掘潜在价值,辅助企业业务决策、优化运营模式、规避经营风险。Python凭借 ...
2026-08-28SQL是数据分析领域最基础、最核心的工具,承担着取数、清洗、统计、分层、归因的全流程工作。不同于单纯的语法练习,实战化SQL数 ...
2026-08-28 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-08-28随着新零售模式的快速普及,零售行业从传统的“货品驱动”全面转向“用户驱动”。门店交易数据、线上消费记录、浏览轨迹、复购频 ...
2026-08-27在数据分析、爬虫采集、接口开发、数据归档等场景中,JSON与CSV是两种使用率最高的数据存储格式。JSON为键值对结构化格式,适配 ...
2026-08-27 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-08-27在数据分析工作中,时间序列是最常见的数据类型之一,订单时间、日志时间、交易时段、统计周期等数据均离不开时间处理。原始数据 ...
2026-08-26在数据分析与数据预处理工作中,原始数据普遍存在录入错误、系统故障、偶然极值等问题,极易产生异常数据。异常数据会严重干扰数 ...
2026-08-26 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-08-26在数理统计与数据分析领域,多因素方差分析与线性回归模型是研究变量关系、因素影响、数据差异规律的两大核心工具。二者均属于经 ...
2026-08-25数据分析的核心价值不在于数据计算与图表制作,而在于清晰、精准、有逻辑地输出结论、支撑业务决策。日常数据分析报告普遍存在结 ...
2026-08-25 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-08-25平均数是数据分析、数理统计与日常运算中最基础、最常用的统计量,核心作用是浓缩一组数据的整体水平、刻画数据集中趋势。在众多 ...
2026-08-24在MySQL数据库中,InnoDB存储引擎作为主流事务型引擎,默认事务隔离级别为可重复读(Repeatable Read,RR),这与SQL Server、Or ...
2026-08-24 很多数据分析师拿到数据就开始清洗、建模,但当被问到“这批数据属于什么类型——结构化还是非结构化?分类变量还是数值变量 ...
2026-08-24 很多数据分析师画过趋势图、做过业绩预测,但当被问到“这个月销售额增长20%,到底是长期趋势自然增长,还是促销活动的短期 ...
2026-08-21在数据分析与数据可视化工作中,直方图是展示数据分布特征、离散程度、集中区间的核心图表,能够直观呈现数值数据的频次分布规律 ...
2026-08-20在数据分析领域有一句核心准则:垃圾数据进,垃圾数据出。数据清洗是数据分析、数据建模、数据可视化之前的必经前置工序,也是保 ...
2026-08-20 很多数据分析师做过按月份的销售额趋势图,画过按天的流量折线图,但当被问到“时间序列和普通数据有什么本质区别”“季节性 ...
2026-08-20在Python数据分析与数据清洗工作中,Pandas是最核心的数据处理库,DataFrame是结构化数据的标准存储格式。在实时数据采集、循环 ...
2026-08-19