python图片裁剪_Python类库Pillow实现图片裁剪、缩放、效果增强等功能

首先,表明一个问题,Pillow和PIL不是一个东西,Pillow 是一个对 PIL 友好的分支,两者的作者是不同的,由于PIL的更新计划太慢了,作者计划一年更新两次,有一些问题无法及时解决,导致Pillow的诞生,Pillow在2.0.0版本之后增加了对python3的支持,同时也修复了很多bug。

35a85edf8db1cb132764f6f6ef92564893584b16.jpeg?token=ece27dd8b7a931edad530f505ea2b7b8&s=3B8AAC4E8AA0AC531C3EC4830300708Bpython

注意事项

1、 Pillow和PIL不能共存;

2、 Pillow >= 2.1.0 不支持 “import _imaging”。

3、 Pillow >= 2.0.0 支持 Python 版本 2.6, 2.7, 3.2, 3.3, 3.4

4、 Pillow < 2.0.0 支持 Python 版本 2.4, 2.5, 2.6, 2.7

平台支持

f9dcd100baa1cd11e89abf018ad4c8fac3ce2d2b.jpeg?token=82518ec9e4236244c4a952a7018cdcc6&s=C91AEC1A1D9FD0CE0C74C0DB0000C0B1平台支持情况

安装

1、 使用pip安装,安装命令:

pip install Pillow

此处需要注意pip版本,最低要求为19.3版本。个人在第一次安装时由于pip版本为19.0,导致无法正常安装,需要更新pip,pip的更新命令:

python -m pip install --upgrade pip

更新过程如下图:

ac4bd11373f08202ac7a633d793dfbebaa641b10.jpeg?token=cbe7e96218c9f4294822b384686274ea&s=497033C28BE08B704E7D1407020070C2pip更新

2、 easy_install 安装,安装命令:

easy_install Pillow

3、 从 PyPI 下载包,解压安装

python setup.py install

使用

提供了广泛的文件格式支持,高效的内部展现,以及十分强大的图像处理能力。用于图像归档和图像批量处理,你可以使用它建立缩略图,转换格式,打印图片等等,现在的版本可以验证和读取大量的图片格式。

快速入门

1、使用 Image 类,通过引入方式:

from PIL import Image

2、打开图片

im = Image.open('./1163c.jpg')

3、获取图片信息

print(im.format, im.size, im.mode)

输出结果:JPEG (500, 300) RGB

format 这个属性标识了图像来源。如果图像不是从文件读取它的值就是None。size属性是一个二元tuple,包含width和height(宽度和高度,单位都是px)。 mode 属性定义了图像bands的数量和名称,以及像素类型和深度。常见的modes 有 “L” (luminance) 表示灰度图像, “RGB” 表示真彩色图像, and “CMYK” 表示出版图像。

如果文件打开错误,返回 IOError 错误。

4、展示图像

im.show()

windows环境会通过系统默认图片查看工具打开图像。

a9d3fd1f4134970a95ba20d19fd9d0cea6865d1f.jpeg?token=badd6e596ab1e8a077536cbf17b94bff&s=BC07F61456432AFEC68EAB83030060AB互联网

实例

1、转换文件格式

from PIL import Image, ImageFilter

2、打开图片

im = Image.open('./2023163c.jpg')im.save('alibaba.png')

运行结果:会在目录内生成一个png格式图片。

3、复制图像(区域复制)

矩形选区有一个4元元组定义,分别表示左、上、右、下的坐标。这个库以左上角为坐标原点,单位是px,所以上诉代码复制了一个 300x300 pixels 的矩形选区。这个选区现在可以被处理并且粘贴到原图。

from PIL import Image, ImageFilter# 打开图片im = Image.open('./2023163c.jpg')# 划分复制区域box = (50, 50, 100, 100)# 进行复制region = im.crop(box)

4、图像旋转

region = region.transpose(Image.ROTATE_180)

5、粘贴,及位置设定

im.paste(region, (60, 110))# 生成新的图像im.save("alibaba2.png")

6、 图像裁剪

from PIL import Image, ImageFilter# 打开图片im = Image.open('./2023163c.jpg')# 调整大小out = im.resize((50, 30))# 生成图片out.save("alibaba4.png")

7、图像旋转

from PIL import Image, ImageFilter# 打开图片im = Image.open('./2023163c.jpg')# 旋转度数out = im.rotate(60)# 生成图片out.save("alibaba3.png")

8、颜色模式转换

from PIL import Image, ImageFilter# 打开图片im = Image.open('./2023163c.jpg').convert("L")# 生成图片im.save("alibaba2.png")

当前版本支持“L”,“RGB”和“CMYK”的之间的所有可能的转换矩阵的参数仅支持“L”和“RGB”。

9、增强图形

要进行更高级的图像增强,可以使用ImageEnhance模块中的类 。从图像创建后,可以使用增强对象快速尝试不同的设置。您可以通过这种方式调整对比度,亮度,色彩平衡和清晰度。

from PIL import Image, ImageFilter, ImageEnhance# 打开图片im = Image.open('./1aec37a59acd30725da46e9e2023163c.jpg')#增强图形(增强(1.3 ),对比度增加30%enh = ImageEnhance.Contrast(im)enh.enhance(1.3).show("30% more contrast")

以上就是python类库Pillow对图像的操作,基本上可以满足日常程序需求,冷门的一些知识点没有做讲解,有兴趣的朋友可以前往官网进行查看。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值