Python-pillow

来源:互联网 发布:java 公章识别 编辑:程序博客网 时间:2024/05/07 07:31

一:Pillow简介
Pillow 是PIL的替代版本,PIL软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。

Pillow 为了解决 PIL 的两个问题:
1. 不兼容setuptools
2. 报告的问题太多,而更新太慢

二:Pillow Image

from PIL import Imageim = Image.open("Image.JPG")# format属性定义了图像的格式,如果图像不是从文件打开的,那么该属性值为None;# size属性是一个tuple,表示图像的宽和高(单位为像素);# mode属性为表示图像的模式,常用的模式为:L为灰度图,RGB为真彩色,CMYK为pre-press图像。# 如果文件不能打开,则抛出IOError异常。print(im.format, im.size, im.mode)# 标准版本的show()方法不是很有效率,因为它先将图像保存为一个临时文件,然后使用xv进行显示。# 如果没有安装xv,该函数甚至不能工作。但是该方法非常便于debug和test。#(windows中应该调用默认图片查看器打开)im.show()

三:Pillow 例子
网上有很多不错的例子,可以参考http://www.cnblogs.com/apexchu/p/4231041.html
和http://www.myexception.cn/image/1845354.html

import os, sysimport argparsefrom PIL import Imageparser = argparse.ArgumentParser()parser.add_argument("inputfile", help="inputfile name")result = parser.parse_args()try:    filename, prefix = os.path.splitext(result.inputfile)    outfile = filename + ".jpg"    Image.open(result.inputfile).save(outfile)except IOError:    print("cannot convert", result.inputfile)
import os, sysimport argparsefrom PIL import Imageparser = argparse.ArgumentParser()parser.add_argument("inputfile", help="inputfile name")parser.add_argument("delta", type=int)result = parser.parse_args()def roll(image, delta):    "Roll an image sideways"    image = image.copy()  # copy image    xsize, ysize = image.size    delta = delta % xsize    if delta == 0:        return image    part1 = image.crop((0, 0, delta, ysize))    part2 = image.crop((delta, 0, xsize, ysize))    image.paste(part2, (0, 0, xsize - delta, ysize))    image.paste(part1, (xsize - delta, 0, xsize, ysize))    return imagetry:    filename, prefix = os.path.splitext(result.inputfile)    outfile = filename + ".jpg"    # Image.open(result.inputfile).save(outfile)    im = Image.open(result.inputfile)    im = roll(im, result.delta)    im.save(outfile)except IOError:    print("cannot convert", result.inputfile)

总体来说Pillow还是很强大的一个图像处理库,如果想深入的话可以继续查看代码学习;

0 0
原创粉丝点击