[转] Python 常用第三方模块 及PIL介绍

原文地址

除了内建的模块外,Python还有大量的第三方模块。

基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用pip安装。

本文介绍常用的第三方模块。

一个图像处理库PIL

PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。

由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。

在命令行下直接通过pip安装:

$ pip install pillow

如果遇到Permission denied安装失败,请加上sudo重试。

实例, 图像缩放操作

from PIL import Image

# 打开一个jpg图像文件,注意是当前路径:
im = Image.open(‘test.jpg‘)
# 获得图像尺寸:
w, h = im.size
print(‘Original image size: %sx%s‘ % (w, h))
# 缩放到50%:
im.thumbnail((w//2, h//2))
print(‘Resize image to: %sx%s‘ % (w//2, h//2))
# 把缩放后的图像用jpeg格式保存:
im.save(‘thumbnail.jpg‘, ‘jpeg‘)

图像缩放

其他功能如切片、旋转、滤镜、输出文字、调色板等一应俱全。

比如,模糊效果也只需几行代码:

from PIL import Image, ImageFilter

# 打开一个jpg图像文件,注意是当前路径:
im = Image.open(‘test.jpg‘)
# 应用模糊滤镜:
im2 = im.filter(ImageFilter.BLUR)
im2.save(‘blur.jpg‘, ‘jpeg‘)

图像模糊

PIL的ImageDraw提供了一系列绘图方法,让我们可以直接绘图。比如要生成字母验证码图片:

from PIL import Image, ImageDraw, ImageFont, ImageFilter

import random

# 随机字母:
def rndChar():
    return chr(random.randint(65, 90))

# 随机颜色1:
def rndColor():
    return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))

# 随机颜色2:
def rndColor2():
    return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))

# 240 x 60:
width = 60 * 4
height = 60
image = Image.new(‘RGB‘, (width, height), (255, 255, 255))
# 创建Font对象:
font = ImageFont.truetype(‘Arial.ttf‘, 36)
# 创建Draw对象:
draw = ImageDraw.Draw(image)
# 填充每个像素:
for x in range(width):
    for y in range(height):
        draw.point((x, y), fill=rndColor())
# 输出文字:
for t in range(4):
    draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2())
# 模糊:
image = image.filter(ImageFilter.BLUR)
image.save(‘code.jpg‘, ‘jpeg‘)

字符验证码生成

我们用随机颜色填充背景,再画上文字,最后对图像进行模糊,得到验证码图片如下:

如果运行的时候报错:

IOError: cannot open resource

这是因为PIL无法定位到字体文件的位置,可以根据操作系统提供绝对路径,比如:

‘/Library/Fonts/Arial.ttf‘

要详细了解PIL的强大功能,请请参考Pillow官方文档:

https://pillow.readthedocs.org/

时间: 2024-10-16 12:11:59

[转] Python 常用第三方模块 及PIL介绍的相关文章

python 常用第三方模块

除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在https://pypi.python.org/pypi上注册,只要找到对应的模块名字,即可用pip安装. 本章介绍常用的第三方模块. 1. PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. 由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillo

Python学习手册之__main__,常用第三方模块和打包发布

在上一篇文章中,我们介绍了 Python 的 元组拆包.三元运算符和对 Python 的 else 语句进行了深入讲解,现在我们介绍 Python 的 __main__ 模块.常用第三方模块和打包发布.查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/10057482.html __main__大多数 Python 代码要么是导入的模块,要么是执行某些任务的脚本.但是,有时需要使一个文件既可以作为模块导入,也可以作为脚本运行. def sayHello()

python 安装第三方模块

在Python中,安装第三方模块,是通过setuptools这个工具完成的. 如果你正在使用Mac或Linux,安装setuptools本身这个步骤就可以跳过了. 如果你正在使用Windows,请首先从这个地址下载ez_setup.py: https://pypi.python.org/pypi/setuptools#windows 下载后,随便放到一个目录下,然后运行以下命令来安装setuptools: python ez_setup.py 在命令提示符窗口下尝试运行easy_install,

python安装第三方模块UnicodeDecodeError:'ascii' codec can't decode byte ···

python要安装第三方模块时,可以用easy_install '模块名' 来直接安装模块,但我在安装easy_install时遇到如上题错误UnicodeDecodeError:'ascii' codec can't decode byte ··· 首先下载ez_setup.py:https://pypi.python.org/pypi/setuptools#windows  到某个目录下 CMD->cd到下载的那个目录 <span style="font-size:18px;&q

sae python安装第三方模块

sae python安装第三方模块 经过这一个星期的折腾,发现编程真心不是看出来的,真心是跟着书上的代码敲出来的.sae的服务做得很好,不过有时候会崩就是了.当sae上没有自己所需要的第三方模块时,可以使用saecloud install package [package...]将所需要的模块安装到本地应用文件夹下,然后在index.wsgi下添加如何代码:import osimport sysroot = os.path.dirname(__file__)sys.path.insert(0,

25.python安装第三方模块

python安装第三方模块 方法1:使用软件管理工具(pip,pip2,pip3) python2和python3都自带了pip,而pip就仿佛有一个仓库,将我们需要安装的第三方模块都收纳其中,使用简 单的安装命令即可完成安装. 注意事项:用python3自带的pip或者pip3安装的第三方模块就只能为python3的编译器使用,这对于python2 的pip和pip2是同理的. 所以在我们需要对某一版本的python安装第三方模块的时候,就将原先的路径删除,增加对应的路径至环境变量. 个人推荐

python之第三方模块安装

1. 直接打开cmd窗口运行 pip install xxx   #可联网情况下使用,联网下载    xxx表示要安装的模块名称 pip问题及解决方法:1. 配置环境变量,将如下两个路径都加到系统path中.这里装的是集成环境,单个python的时候,也需要将python的安装目录和安装目录下面的scripts目录加入环境变量.       C:\ProgramData\Anaconda3       C:\ProgramData\Anaconda3\Scripts2.Unknow or uns

python安装第三方模块

模块分类 1.python自带标准模块 python自带的这些模块,直接import就能用的 import time,json等 2.第三方模块 安装第三方模块 1.用pip (1) 直接在命令行窗口输入命令  pip install xpinyin         pip uninstall xx  #卸载 pip install xx -u #更新 备注:python 3.5以后 scripts自动加入到计算机环境变量 没有pip命令: a.找到python安装目录 b.然后把安装目录下的s

python常用数据类型内置方法介绍

熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 一.整型 a = 100 a.xxx() class int(object): def bit_length(self): ##如果将某个整数用2进制表示,返回这个2进制所占bit位数. return 0 def conjugate(self, *args, **kwargs): ##共轭复数 @classmethod # known case def from_bytes(cls, bytes, byteorder, *ar