PIL的常用操作

2022-08-30  本文已影响0人  小黄不头秃

(一)PIL(python image library)的基本概念

PIL中主要涉及几个概念:通道、模式、尺寸、坐标系统、调色板、信息和滤波器。

通道

首先我们要知道一张图片是怎么样的。图片是有三种颜色组成的也就是RGB三原色,一张图片可以变成红色,绿色,蓝色三张图片。这个也就是所谓的通道数。然而对于黑白或者灰度图像来说,就只有一个通道了。

模式

模式定义了图像的类型和像素的位宽。


尺寸

可以通过size属性来获取图像的储存,这是一个二元组,也就是水平和垂直方向上的像素数量。

坐标系

PIL使用的是笛卡尔坐标系,和我们平时数学中的坐标系有一些不同。


调色板

调色板模式(“P”)使用一个颜色调色板为每个像色定义具体的颜色值。

信息

使用info属性,可以为一张图片添加一些辅助信息。这是一个字典对象,加载和保存图片文件是,多少信息 需要处理取决于文件。

滤波器

对于多个输入的像素因设为一个输出像素的几何操作。

(二)代码

import PIL.Image as image
import PIL.ImageDraw as draw
import PIL.ImageFont as imagefont
import PIL.ImageFilter as imgfilter

path = "./img/cat1.jpg"
img1 = image.open(path)
# img1.show() # 使用默认工具打开图片
print(img1.size) # (500, 400)
img2 = img1.resize((250,250)) # 重置大小
# img2.show()

img3 = img2.rotate(45,expand=True) #旋转图片
# img3.show()
img3.save("./cat.jpg")

img = draw.Draw(img1)
img.rectangle((0,0,500,400),outline="green",width=3) # 画矩形
img.line((0,0,500,400),fill="yellow",width=3)# 划线
img.point((250,200),fill="red")# 画点
font = imagefont.truetype("SIMYOU.TTF",size=40) # 引入字体 幼圆字体
img.arc((150,100,350,300),0,360,fill="white",width=3) # 画圆弧 前面可以框出一个圆,后面是圆弧的度数0-360
img.chord((150,100,350,300),0,180,fill="white",outline="green",width=3) # 画半圆
img.text((240,350),"猫",fill="blue",align="center",font=font) # 写字
# img1.show()

img4 = img1.convert("L") # 转换为灰度图
# img4.show()

# img5 = img1.filter(imgfilter.BLUR()) # 模糊
img5 = img1.filter(imgfilter.CONTOUR()) # 素描
img5.show()

输出结果:


上一篇下一篇

猜你喜欢

热点阅读