Python之PIL库

Python PIL

PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储、显示和处理,能够处理几乎所有格式的图片。

一、PIL库简介

1. PIL库主要有2个方面的功能:

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

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

二、安装库函数

pip install pillow

三、使用库函数Image类 —— 基本图像处理

1. 调用Image类

from PIL import Image

2. Image类关于图像读取与创建


方法


说明


Image.open(filename)


加载图像文件


Image.new(mode,size,color)


根据给定参数创建新图像


Image.open(StringIO.StringIO(buffer))


从字符串中获取图像


Image.frombytes(mode,size,color)


根据像素点创建新图像


Image.verify()


对图像完整性进行检查,返回异常

3. Image类的常用属性


方法


说明


Image.format


图像格式或来源,若图像不是从文件读取,返回None


Image.mode


图像的色彩模式,’L’为灰度模式,’RGB’为真彩色图像,’C(青)M(品红)Y(黄)K(黑)’为出版图像


Image.size


图像的宽度和高度,单位是像素(px),返回值为元组类型


Image.palette


调色板属性,返回ImagePalette类型

4.Image类的序列图像操作方法


方法


说明


Image.seek(frame)


跳转并返回图像中的指定帧


Image.tell()


返回当前帧的序号

5.Image类的图像旋转和缩放方法


方法


说明


Image.resize(size)


返回按size大小调整图像的副本


Image.rotate(angle)


返回按angle角度旋转图像的副本

6.Image类的图像转换和保存方法


方法


说明


Image.save(filename,format)


将图像保存为filename文件名,format格式


Image.convert(mode)


将图像转换为mode模式


Image.thumbnail(size)


创建图像的缩略图,size是缩略图尺寸的元组

例子1

# -*- encoding:utf-8 -*-
‘‘‘ 改变颜色 --- 颜色反转‘‘‘
from PIL import Image
nest = Image.open("D:\\nest.jpg")
r,g,b = nest.split()           #获取原图的RGB通道的颜色值
newb = b.point(lambda i:i*1.1) #将B通道的颜色值增强
nest1 = Image.merge(nest.mode,(b,g,r))
nest1.thumbnail((400,254))     #创建缩略图
nest1.save("D:\\nest_2.jpg")

  

处理图像序列(gif图像)

函数:ImageSequence()

下面的代码可以遍历gif图像中的所有帧,并分别保存为图像。

 index = 0
while 1:

try:

gif.seek(index)

 gif.save("%d.%s" %(index,‘jpg‘ if gif.mode == ‘JPEG‘ else ‘png‘))

index += 1... except EOFError:

 print("Reach the end of gif sequence!")

break

ImageEnhance()

from PIL import Image , ImageEnhance

im = Image.open("F:\\test\\image1\\person.jpg")

brightness = ImageEnhance.Brightness(im)

im_brightness = brightness.enhance(1.5)

contrast = ImageEnhance.Contrast(im)

im_contrast = contrast.enhance(1.5)

im_brightness.save("./image1/im_brightness.jpg")

im_contrast.save("./image1/im_contrast.jpg")

ImageEnhance是PIL下的一个子类,主要用于图像增强,比如增加亮度(Brightness),增加对比度(Contrast)等。上面的代码将原来图像的亮度增加50%,将对比度也增加了50%。

接下来把图片变成素描的效果

from PIL import Image

def sketch(img, threshold):
    ‘‘‘
    素描
    param img: Image实例
    param threshold: 介于0到100
    ‘‘‘
    if threshold < 0: threshold = 0
    if threshold > 100: threshold = 100

    width, height = img.size
    img = img.convert(‘L‘) # convert to grayscale mode
    pix = img.load() # get pixel matrix

    for w in xrange(width):
        for h in xrange(height):
            if w == width-1 or h == height-1:
                continue

            src = pix[w, h]
            dst = pix[w+1, h+1]

            diff = abs(src - dst)

            if diff >= threshold:
                pix[w, h] = 0
            else:
                pix[w, h] = 255

    return img
if __name__ == "__main__":
    import sys, os

    path = os.path.dirname(__file__) + os.sep.join([‘‘, ‘images‘, ‘lam.jpg‘])
    threshold = 15

    if len(sys.argv) == 2:
        try:
            threshold = int(sys.argv[1])
        except ValueError:
            path  = sys.argv[1]
    elif len(sys.argv) == 3:
        path = sys.argv[1]
        threshold = int(sys.argv[2])

    img = Image.open(path)
    img = sketch(img, threshold)
    img.save(os.path.splitext(path)[0]+‘.sketch.jpg‘, ‘JPEG‘)

效果对比图。

原文地址:https://www.cnblogs.com/gyy-15768200938/p/10686756.html

时间: 2024-07-28 23:26:57

Python之PIL库的相关文章

记一次python安装PIL库所遇到的事

自学python,要用到PIL这个很出名的库,那就安装呗 大家都知道python下,用easy_install命令安装特简单,命令如下: 好吧,这样我们安装完了,我们再去%PYTHON_HOME%\Lib\site-packages文件夹下看看是否已经有对用的库文件了 好的,如上图所示,也已经有了,对了,上面的PIL包是我另外安装的,如果你只是用easy_install命令安装的话,site-packages文件夹下面是不会有PIL这个文件夹的, 而PIL文件夹是我从网下载的安装程序,地址是ht

windows7 下安装Python的PIL库

前言: Python中最常用的图像处理库是PIL(PythonImaging Library),其中Image类是PIL库中一个非常重要的类,通过这个类来创建实例可以有直接载入图像文件,读取处理过的图像和通过抓取的方法得到的图像这三种方法. 一PIL版本选择 从网上搜索得知,PIL官方只有32位的安装文件,安装时会提示找不到python的安装路径.64位Win7下无法安装PIL库的原因是:PIL官方http://www.pythonware.com/products/pil/提供的PIL二进制安

如何在windows下安装Python的PIL库

最近在学习廖大大的Python教程,今天正好学习到“安装第三方模块”这一章节,第一个任务就是安装“PIL”库. PIL库是个啥?廖大大的告诉我们: Python Imaging Library,这是Python下非常强大的处理图像的工具库.一般来说,第三方库都会在Python官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如Python Imaging Library的名称叫PIL,因此,安装Python Imaging L

Python图像处理PIL库简介

搬运自本人博客:http://www.xgezhang.com/python_pil.html 最近用到一些简单的图像处理,这里简单介绍一下,Python Imaging Library (PIL)是PythonWare公司提供的免费的图像处理工具包,是python下的图像处理模块,支持多种格式,并提供强大的图形与图像处理功能.虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是Python的快速开发能力以及面向对象等等诸多特点使得它非常适合用来进行原型开发.对于简单的

python 利用PIL库进行更改图片大小的操作

python 是可以利用PIL库进行更改图片大小的操作的,当然一般情况下是不需要的,但是在一些特殊的利用场合,是需要改变图片的灰度或是大小等的操作的,其实用python更改图片的大小还是蛮简单的,只需要几行代码,有一点可能刚入门的小伙伴们可能不知道PIL库,PIL是一个库的简写,他的真名叫做pillow,因此,需要pip install pillow 用anaconda的话是conda install pillow千万不要pip/conda install PIL咯,下面贴出代码,希望对一些小伙

Python关于PIL库的学习总结与成果展示

一.关于PIL库的学习总结 PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装.安装PIL库的方法如下,需要注意,安装库的名字是pillow. :\>pip install pillow      #或者    pip3 install pillow PIL库支持图像储存.显示和处理,他能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.叠加以及向图像添加线条.图像和文字等操作. PIL库主要可以实现图像归档和图像处理两方面功能需求. (1

一秒钟带你走进P图世界-----(python)PIL库的使用

python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功能,还可以用于图像的归档和批量处理能力. 2.PIL库主要有2个方面的功能: (1) 图像归档:对图像进行批处理.生产图像预览.图像格式转换等. (2) 图像处理:图像基本处理.像素处理.颜色处理等. 根据功能的不同,PIL库包括21个与图片相关的类,这些类可以被看作是子库或PIL库中的模块,例如:

有关Python的PIL库的学习体会和实例

今天给各位介绍的是有关PIL库的学习. 首先介绍一下PIL库,总所周知,PIL库是一个功能强大的图片处理框架. 话不多说,下面就让各位看一下我的成果吧,主要是对图片的缩略图,改变颜色,轮廓,浮雕操作,以及提取GIF图像的每一帧. 第一,我举例出一个图的效果 首先是缩略图 以下是代码 以下是效果 原图是 再说改变颜色 上边是效果,具体代码如下 这个是图片颜色变换的代码 至于轮廓 效果如下图 浮雕操作和轮廓操作类似,只不过是将原来的‘ImageFilter.CONTOUR’更改为‘ImageFilt

关于Python安装PIL库失败的原因

PIL简介 PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. 最近在写一些Python爬虫时需要用到PIL这个图像处理库,但是发现使用pip无法安装,同之前在deepin上报错一致,报错如下: 大致的意思是没有符合当前环境的PIL版本,从网上查了查相关的教程资料,发现可以通过安装Pillow来替代. pip install pillow 网上查到一个资料说是因为官网只提供32位系统的安装...(待我