python批量_Python学习第九十三天:Python批量处理图片
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 import Image
im = 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 os
from PIL import Image
# 源目录
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()
python批量_Python学习第九十三天:Python批量处理图片相关推荐
- js读取word文档内容_Python学习第九十二天:Python操作word
1.Python写word文档 要操作word文档首先需要安装python-docx库: pip install python-docx 然后导入docx模块,或者从docx模块中导入Document ...
- 零基础学python数据分析_Python学习指南:使用Python学习数据分析
如今,在大数据行业中Python和数据分析可能是最常听到的两个词,在当今蓬勃发展的科技领域,精通这两项技术可以带来无限的可能.近年来,我们看到Python教育在大数据领域突飞猛进. 因此,这里我们提供 ...
- 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?
2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...
- (Python入门)学习笔记二,Python学习路线图
(Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...
- python __name__怎么使用_python学习笔记26(python中__name__的使用)
在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...
- python字典、列表、元祖使用场景_python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍...
python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 元祖跟列表类似.只不过是有区别的. 如下: tuple(元祖英文) 跟列表类似, 元素不能 ...
- python大纲_python学习大纲
知乎获赞无数的编程指南,介绍的不光是一门语言的入门,也是关于编程的入门,谈到了作为一名程序员,应该掌握的一些计算机知识. ------ 二.Python社区 强烈推荐Python Tip,有刷题挑战赛 ...
- python异常处理_Python学习点滴04 - 学会异常处理(2)
前言 我们在开发Python程序时经常会遇到一些错误(语法错误和异常),尤其是程序代码发生异常(Exceptions)时,如果不能及时捕获异常和有效处理异常,则程序运行会被终止,有可能会造成相应的后果 ...
- 达内python 资源_Python学习资源整理,优质Python学习资源推荐
Python基本安装: * http://www.python.org/ 官方标准Python开发包和支持环境,同时也是Python的官方网站; * http://www.activestate.co ...
最新文章
- 从一道面试题分析Thread.interrupt方法
- 思科路由器MTU及ip tcp adjust-mss测试
- python【蓝桥杯vip练习题库】PREV-52小数第n位(模拟)
- 【机器学习PAI实践八】用机器学习算法评估学生考试成绩
- 【JFreeChart】JFreeChart—输出区域图
- laravel框架的数据库链接
- html无框架,HTML框架技术详例
- 百度SEO资源吧emlog模版全套源码
- Kerberos加密级别不支持的问题
- 初步接触TinyXML2
- TensorFlow中读取图像数据的三种方式(转)
- Linux系统死亡之ping,linux下防止syn***,端口扫描和死亡之ping
- 八数码问题c语言,启发式搜索算法解决八数码问题(C语言)
- 16进制ff转化为二进制_二进制与十六进制的转换与应用
- 基于网络爬虫技术的网络新闻分析
- 最全英豪工具箱(LvyhTools)PPT插件教程(前篇)
- 【web课程设计】HTML+CSS仿QQ音乐网站
- 模型预测控制(MPC)解析(四):状态估计
- JZ2440学习笔记一
- 健康的生活规律,美满的人生
热门文章
- javascript教程_JavaScript教程
- 安全威胁建模综述_如何使用威胁建模分析应用程序的安全性
- Redux简介以及Redux应用程序中的状态更新方式
- 小程序动画从头开始_渐进式Web应用程序102:从头开始构建渐进式Web应用程序
- 数据可视化课程_在这个由10部分组成的免费数据可视化课程中学习D3
- 100例Python代码带你从入门到进阶!
- 每天进步一点点《PCA的简要学习》
- leetcode10:Regular Expression Matching
- oracle推式任务发料,Oracle EBS物料清单管理系统简介.pptx
- 交换机配置工具_Soce在FPGA上为任务关键型应用量身定制的IEEE 1588感知以太网交换机...