一、关于PIL和Pillow区分

1.PIL

PIL官方文档:http://pythonware.com/products/pil/

PIL是一个强大的、方便的python图像处理库,功能非常强大,曾经一度被认为是python平台事实上的图像处理标准库,不过Python 2.7以后不再支持。

2.Pillow

Pillow官方文档:https://pillow.readthedocs.org/

Pillow是基于PIL模块fork的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库。

Pillow和PIL不能在同一个环境中共存。在安装Pillow之前,请先卸载PIL。

二、PIL库的概述

PIL库可以完成图像归档和图像处理两方面功能需求:

(1)图像归档:对图像进行批处理、生成图像预览、图像格式转换等;

(2)图像处理:图像基本处理、像素处理、颜色处理等。

三、安装

pip install pillow

四、简单使用

from PIL,可能会让很多新人疑惑。虽然是pillow,但是导入包的写法依然是from PIL。

1.图片读写显示与保存

import numpy as np
from PIL import Image, ImageFilter, ImageDraw, ImageFont# 读取图片
img = Image.open("/Users/viviana/coding/python/pycharm/study/tests.jpg")
print(img.format, img.size, img.mode)  # JPEG (1080, 1080) RGB
print(img.info)
img.show()# 保存图片
img.save("/Users/viviana/coding/python/pycharm/study/te.png")

2.转化为灰度

# 转成灰度
img = Image.open("/Users/viviana/coding/python/pycharm/study/tests.jpg")
img = img.convert("L")
img.show()

3.调整图片尺寸

# 调整大小
img = Image.open("/Users/viviana/coding/python/pycharm/study/tests.jpg")
print(img.size)  # (1080, 1080)
img_resized = img.resize((80, 80))
print(img_resized.size)  # (80, 80)
img_resized.show()

4.截取图片部分区域

img = Image.open("/Users/viviana/coding/python/pycharm/study/tests.jpg")
img_croped = img.crop(box=[78, 200, 455, 320])
print(img_croped.size)  # (377, 120)
img_croped.show()

4.图像旋转

Image类可以缩放和旋转图像,其中rotate()方法以逆时针旋转的角度值为参数来旋转图像

方法 描述
Image.resize(size) 按size大小调整图像,生成副本
Image.rotete(angle) 按angle角度调整大小,生成副本
img = Image.open("/Users/viviana/coding/python/pycharm/study/tests.jpg")
img_rotated = img.rotate(69, center=(0, 0))  # 以center为中心逆时针旋转
img_rotated.show()

5.左右翻转

img = Image.open("/Users/viviana/coding/python/pycharm/study/tests.jpg")
# 左右翻转
img_left_right = img.transpose(Image.FLIP_LEFT_RIGHT)
img_left_right.show()

6.上下翻转

7.图片高斯模糊

img = Image.open("/Users/viviana/coding/python/pycharm/study/tests.jpg")
img_blur = img.filter(ImageFilter.GaussianBlur(radius=5))
img_blur.show()

8.在图片上绘制直线

img = Image.open("/Users/viviana/coding/python/pycharm/study/tests.jpg")
draw = ImageDraw.Draw(img)
draw.line([0, 0, 641, 641], fill="red", width=5)
img.show()

9.在图片上绘制矩形

img = Image.open("猫咪图片.jpg")
draw = ImageDraw.Draw(img)
draw.rectangle([78, 24, 455, 320], fill=None, outline='lawngreen', width=5)
img.show()

10.在图片上粘贴其他图片

img_resized = imgs.resize((150, 150))
imgs.paste(img_resized, box=[600, 50])
imgs.show()

常用的第三方模块-Pillow相关推荐

  1. 常用的第三方模块 Pillow url

    Pillow PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. 由于PIL仅支持到Python 2.7 ...

  2. python好用的模块_python常用的内置模块和常用的第三方模块

    模块说明 requests对HTTP协议进行高度封装 bs4解析HTML的模块 pymongo把数据写入MongoDB numpy支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库 ...

  3. Python学习笔记:常用第三方模块(1)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  4. python常用第三方模块多少万_python 常用第三方模块

    除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在https://pypi.python.org/pypi上注册,只要找到对应的模块名字,即可用pip安装. 本章介绍 ...

  5. PythonD12——常用第三方模块(图像、url、检测、检测系统)、图形界面、网络编程、电子邮件和web开发

    文章目录 常用第三方模块 pillow 图像处理标准库 requests 更方便地处理url chardet 检测编码方式 psutil 获取系统信息 virtualenv 隔离运行环境 图形界面(较 ...

  6. Python 第十一章 常用第三方模块

    常用第三方模块 除了内建的模块,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在PyPI- The Python Package Index 上注册,只要找到对应模块的名字,即可用p ...

  7. Python学习笔记:常用第三方模块3

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. python常用内置模块-Python内置模块和第三方模块

    Python的强大之处在于他有非常丰富和强大的标准库和第三方库(模块),几乎你想实现的任何功能都有相应的Python库支持,就类似于C#中的类库亦或JAVA的jar包,前端中的JS库. 使用模块有什么 ...

  9. python 根据名称获取pid_【Python学习笔记】76、常用第三方模块psutil

    用Python来编写脚本简化日常的运维工作是Python的一个重要用途.在Linux下,有许多系统命令可以让我们时刻监控系统运行的状态,如ps,top,free等等.要获取这些系统信息,Python可 ...

最新文章

  1. leetcode算法题--最小路径和
  2. exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp
  3. 我的性格是外向型,解决问题导向的
  4. python lambda函数两个列表大小关系_python学习 -- operator.itemgetter(), list.sort/sorted 以及lambda函数...
  5. 【kali】kali设置burpsuite抓包dvwa
  6. 在linux中,我为什么不能安装VMware Tools?
  7. 一个application多个 URL
  8. jdbc连接oracle数据库
  9. Alpine linux 没有apt-get安装软件方法 安装vim
  10. HFSS天线设计实例_不同介质的BLE S11曲线
  11. 图论(graph)相关算法总结
  12. idea 无法找到要转到的声明
  13. 互联网创业的准备——依赖服务:云主机、域名、代码库
  14. 「大学必读」计算机专业学生一定要学好哪些课程?
  15. 判断当前手机设备的类型(安卓还是IOS)
  16. Oracle读取数据库中表填充,Oracle数据库中查看所有表和字段以及表注释.字段注释...
  17. AD出现 “Net Tie failed verification”如何解决?
  18. 【计算机网络】第四部分 网络层(20) IP协议
  19. React学习(6)-React中组件的数据-state
  20. 全新商城社区系统整站源码

热门文章

  1. android不能访问数据库文件,android下访问已存在的sqlite数据库文件的办法
  2. 聊聊什么是探索式测试
  3. mapBox添加本地图片
  4. Introduce·传播学核心期刊推荐之《现代传播(中国传媒大学学报)》
  5. 浅谈border-radius对border的影响
  6. ubuntu下安装google拼音输入法
  7. 画质、分辨率、帧率之间有什么关系与区别?
  8. CSDN2022总排名前十统计
  9. Failed to resolve: com.github.chrisbanes:PhotoView:1.2.6 Show in File Show i
  10. 某宝上关于PMP低价续证,可信吗?