Python 细聊一下可以媲美 PS 的 PIL 图片处理库

1 . 前言

PIL 是 Python Image Library 的简称。

PIL 库中提供了诸多用来处理图片的模块,可以对图片做类似于 PS(Photoshop) 的编辑。比如:改变图像大小、旋转图像、图像格式转换,转换颜色通道,图像增强,直方图处理,插值和滤波等等。

PIL 是第三方库,使用之前需要先安装。

pip install pillow

2. 颜色模式

继续之前先解一个重要概念: 颜色模式。

所谓颜色模式:指在计算机中如何模拟出现实世界中的各种颜色,或准确讲是一种颜色生成算法。

常用的颜色模式:

  • RGB:基础理论就是对图片中的每一个像素点,按 红 (Red)、绿(Green)、蓝(Blue) 三色系的不同分量组合出现实世界中的颜色。也可以说,我们在计算机上中所看到的 RGB 图片的颜色是由 三色系分量 组合而成。或称其有 3 个颜色通道。

    Tip:我们在电脑中所看到的图片大多数都是 像素图片 ,像素图片的特点就是整张图片由很多的像素点组成,每一个像素点有自己的颜色。

    在 RGB 颜色模式中,计算机为红色、绿色、蓝色分别分配 8 bit 的空间,也意味着红色、绿色、蓝色各自的分量变化是在 0~255(8bit 二进制换算成十进制度的最大值)之间。

    所以计算机使用 RGB 颜色模式最多可以模拟出 255X255X255 种颜色,这应该足够多了,已经可以让计算机显示出多彩斑斓的现实世界。

    Tip: RGBA 是 RGB 颜色模式的增加版。除了可以模拟颜色,还可以摸拟透明度。A 是 Alpha 的缩写,这是可以理解为透过或透明度的意思。

  • CMYK: C:Cyan = 青色,又称为‘天蓝色’或是‘湛蓝’;M:Magenta = 品红色,又称为‘洋红色’;Y:Yellow = 黄色;K:blacK=黑色。CMYK 往往用于模拟印刷制品颜色。多用于广告设计。

可以使用 PIL 库的 ImageColor 模块的 getColor ( ) 方法获取一个 颜色 的不同颜色分量值。

from PIL import ImageColor

red = ImageColor.getrgb("red")
print(red)
'''
输出结果
(255, 0, 0)
'''

Tip: ImageColor 模块内部维护有一个字典。

getColor( )方法用使用者提供的颜色名字为键,在字典中查找到对应颜色,再转换成元组后返回。

colormap = {
"aliceblue": "#f0f8ff",
"antiquewhite": "#faebd7",
"aqua": "#00ffff",
"aquamarine": "#7fffd4",
"azure": "#f0ffff",
"beige": "#f5f5dc",
"bisque": "#ffe4c4",
"black": "#000000",
"blanchedalmond": "#ffebcd",
……
}

3. 处理图片

处理图片,主要是使用 PIL 库的 Image 模块(也是核心模块)。在处理图片之前请提前准备 3 张图片(2 张 jpg 格式的图片,1 张 png 格式的图片)。

Tip:为了方便操作,把图片存放到项目目录中,加载图片时使用相对路径描述。

3.1 基本操作

  1. 打开图片:处理图片之前,先要打开图片,可以使用 Image 模块中的 open( ) 方法 打开。此方法返回一个 PIL.Image.Image 类型的对象。

    Tip:本文不刻意区分函数和方法的概念,统一称为方法。

# 原型
def open(fp, mode="r", formats=None):
    ……

open( ) 方法特点:open( ) 方法不会立即加载图片数据,只有在处理图片或调用图片的 load( ) 方法时才会加载。

from PIL import Image
# op
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值