Python批量处理图片

发布时间:2025-08-31 20:10:52 作者:益华网络 来源:undefined 浏览量(0) 点赞(0)
摘要:1.Pillow库介绍 Pillow是Python里的图像处理库,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等; 安装 pip install pillow 2.Image类

1.Pillow库介绍

Pillow是Python里的图像处理库,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等;

安装

pip install pillow

2.Image类

PIL中最重要的类是Image类,使用前需要先从PIL中导入Image类,要从文件加载图像可以使用Image类中的open()函数:Image.open(fp, mode =r ),如果加载成功则会返回一个Image对象,fp是图片路径,mode是模式。图像的对象属性有filename源文件的文件名或路径、format图片的格式、size图片大小,以像素为单位、mode图片模式、width图像宽度、height图像高度、palette调色板表等;

save(fp, format=None, **params):保存图像到给定的文件名下,如果没有指定格式则可以使用文件扩展名来确定要使用的格式,无返回值。fp是文件名或路径,format可选的格式覆盖;

thumbnail(size, resample=3):指定图片的像素,size是大小,resample是重采样滤波器,可以是Image.NEAREST、Image.BILINEAR、Image.BICUBIC或者Image.LANCZOS,默认为Image.BICUBIC;

rotate(angle, resample=0, expand=0, ceter=None, translate=None):旋转图片的方向,返回旋转后的图像副本,一个Image对象 。angle角度,逆时针旋转、resample重采样滤波器、expand是否展开、center旋转中心、translate旋转后;

filter(filter):给图片添加滤镜,返回一个Image对象,filter是过滤器;

transpose(method):旋转或翻转图像,返回旋转或翻转后的图像副本,一个Image对象。method可以是Image.FLIP_LEFT_RIGHT、Image.FLIP_TOP_BOTTOM、Image.ROTATE_90、Image.ROTATE_180、Image.ROTATE_270、Image.TRANSPOSE或者Image.TRANSVERSE;

show():显示这个图像,此方法主要用于调试目的;

# 获取图片的基本信息from PIL importImageim =Image.open(./image.jpg)# 获取图片的格式,大小,以及模式print(im.format, im.size, im.mode)# 指定图片的像素im.thumbnail((128,128))im.save(./image_128_128.jpg)# 旋转图片的方向dest_im = im.rotate(90)dest_im.save(./image_rotate.jpg)# 给图片添加滤镜dest_im = im.filter(ImageFilter.GaussianBlur)dest_im.show()# 图片反转dest_im = im.transpose(Image.FLIP_LEFT_RIGHT)# 左右反转dest_im = im.transpose(Image.FLIP_TOP_BOTTOM)# 上下反转dest_im.show()# 图片上写文字image =Image.open(image.jpg)img_draw =ImageDraw.Draw(image)img_draw.text((770,250),hello world,fill=green)# 放上文字信息到图像上image.show()

3.ImageDraw模块

ImageDraw模块为Image对象提供简单的2D图形,可以使用此模块创建新图像,注释或润饰现有图像,以及动态生成图形以供Web使用;

ImageDraw.Draw(im,mode=None):创建可用于在给定图像中绘制的对象,im要绘制的图像、mode 用于颜色值的可选模式;

ImageDraw.text(xy,text,fill=None,font=None,anchor=None,spacing=0,align =“left”,direction = None,features=None,language=None):在给定位置绘制字符串,xy文本的左上角、text要绘制的文本、fill用于文本的颜色、direction文字的方向、language文字的语言;

ImageDraw.point(xy,fill=None):在给定坐标处绘制点,xy元组的序列或类似的数值、fill用于点的颜色; 更多可以查看网址:https://pillow.readthedocs.io/en/latest/reference/index.html

4.批量将图片的大小设置为指定大小

import osfrom PIL importImage# 源目录project_dir = os.path.dirname(os.path.abspath(__file__))input = os.path.join(project_dir,src)# 输出目录output = os.path.join(project_dir,dest)def modify():# 切换目录 os.chdir(input)# 遍历目录下所有的文件for image_name in os.listdir(os.getcwd()):print(image_name) im =Image.open(os.path.join(input, image_name)) im.thumbnail((128,128)) im.save(os.path.join(output, image_name))if __name__ ==__main__: modify()

参考:https://www.9xkd.com/user/plan-view.html?id=1113747022

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!