Python-pillow

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

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

二:Pillow Image

from PIL import Image

im = 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, sys
import argparse
from PIL import Image

parser = 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, sys
import argparse
from PIL import Image

parser = 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 image


try:
    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还是很强大的一个图像处理库,如果想深入的话可以继续查看代码学习;

你可能感兴趣的:(Python)