Pillow是模块结构
主要包含一下结构
Image
ImageFilter
ImageEnhance
ImageDraw
1.图像的基本概念:
图像基本类型:
每一个图片的数据都是由二进制数据组成,本质上是对二进制数据进行读和写。
图像处理:
旋转,颜色的改变,对比度的改变,大小改变,轮廓
2.基本命令:
打开图片及获取信息
open:打开图片
format:获取图片格式
mode:获取图片色彩
size:获取图片大小
首先在pycharm中应先安装一个pillow模块,然后再下载一个图片。下载完成之后再运用open及其他函数
eg:下载一个名为"ns"的图片图片格式为jpg
1.打开该图片:
"""
文件名:图像处理
日期:2023/1/28
pillow #先安装一个库
"""
import PIL
from PIL import Image
#该功能模块包含有:读写图像,图像混合,放缩,裁切,旋转
img=Image.open("ns.jpg")
print(img)
结果显示出:
C:\Users\冯雅静\PycharmProjects\pythonProject2\venv\Scripts\python.exe C:\Users\冯雅静\PycharmProjects\pythonProject2\练习图像处理.py
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=457x417 at 0x1B1C3AF8C88>
Process finished with exit code 0
#RGB是图片的色彩模式
#size是大小
2.获取图片的格式
"""
文件名:图像处理
日期:2023/1/28
pillow #先安装一个库
"""
import PIL
from PIL import Image
#该功能模块包含有:读写图像,图像混合,放缩,裁切,旋转
img=Image.open("ns.jpg")
print(img.format) #获取的是图片的格式,jpg的本质是jpeg
运行结果为:
JPEG
3.使用mode来获取图片的色彩模式
图片的色彩模式包含三类:
"L":灰度图像,灰白色,黑色
RGB:真彩色图像,就是屏幕显示的图像
GMYK:出版图像
print(img.mode)
运行结果为:
RGB #是图像的色彩模式
4.使用size获取图像的大小信息
print(img.size)
结果为:
(457,417) #是我选的图片的宽度和长度
5.使用resize来调整大小,而不是使用size来调整,size只是获取图像的大小
s=img.resize(500,600)
s.save(""img_na_save/s.jpg)
#括号里是调整之后要求的宽度和长度,并且需要保存,新建一个文件夹img_ns_save,再讲调整后的图像放在文件夹里,再取一个文件名s.jpg,这样在文件夹img_ns_save中找到调整后的图片
6.使用rotate 调整方向:主要是改变角度,一张图片默认角度为90°
os=img.rotate(45) #括号里填的是角度
os.save("img._ns_save/os.jpg")
#可以在文件夹里找到图片确实转了45°
7.用convert 来改变图像的色彩模式
oc=img.convert("L")
oc.save("img_ns_save/oc.jpg")
#在文件夹img_ns_save中找到文件oc.jpg会发现图片变成了灰白色
8.调整轮廓
需要导入ImageFilter结构
"""
文件名:图像处理
日期:2023/1/28
pillow #先安装一个库
"""
import PIL
from PIL import Image
#该功能模块包含有:读写图像,图像混合,放缩,裁切,旋转
from PIL import ImageFilter
fi=img.filter(ImageFilter.CONTOUR)
fi.save("img_ns_save/fi.jpg")
#运行之后查看fi.jpg图片会显示出一个轮廓CONTOUR是一个参数
9.使用Contrast来调整对比度
需要先导入ImageEnhance结构
"""
文件名:图像处理
日期:2023/1/28
pillow #先安装一个库
"""
import PIL
from PIL import Image
#该功能模块包含有:读写图像,图像混合,放缩,裁切,旋转
from PIL import ImageFilter
from PIL import ImageEnhance
cn=ImageEhance.Contrast (img).enhance(5)
cn.save("img_ns_save/cn.jpg")#保存
#第二个括号里填入参数,任意的数字都行
#运行之后查看图片也可以与原图片进行对比,可以看出来
10.os模块可以读取一个文件夹里的所有名称
且os模块不需要去安装
"""
文件名:图像处理
日期:2023/1/28
pillow #先安装一个库
"""
import PIL
from PIL import Image
#该功能模块包含有:读写图像,图像混合,放缩,裁切,旋转
from PIL import ImageFilter
import os
for path, obj, lists in os.walk ("img_ns_save")
print(path)
print(obj)
print(lists)
运行出的第一个数据是文件夹的名称img_ns_save
第二个数据是子文件夹的名称
["js"]
第三个数据是文件夹中的文件名称
['cn.jpg','fi.jpg','oc,jpg','os.jpg',s.jpg']
若有子文件夹则后面的数据是又将子文件夹显示了出来扔是三个数据,如子文件夹里没有数据则为:
img_ns_save/js #子文件夹名称
[ ]
[ ]