美文网首页
Python的Pillow模块相关使用

Python的Pillow模块相关使用

作者: 小晨主 | 来源:发表于2018-04-01 19:43 被阅读0次
# 导入PIL的Image模块
from __future__ import print_function
import os, sys
from PIL import Image
from PIL import ImageFilter
from PIL import ImageEnhance
from PIL import PSDraw

# 打开图片资源
im = Image.open("bg1.jpg")

# python demo.py bg1.jpg
# 将当前目录制定图片转为png格式
for infile in sys.argv[1:]:
    f, e = os.path.splitext(infile)
    outfile = f + ".png"
    if infile != outfile:
        try:
            Image.open(infile).save(outfile)
        except IOError:
            print("cannot convert", infile)

# 创建缩略图
size = (128, 128) # 定义缩略图大小
for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            im = Image.open(infile)
            im.thumbnail(size)
            im.save(outfile, "JPEG")
        except IOError:
            print("cannot create thumbnail for", infile)

# 识别图片基本信息
for infile in sys.argv[1:]:
    try:
        with Image.open(infile) as im:
            print(infile, im.format, "%dx%d" % im.size, im.mode)
    except IOError:
        pass

def roll(image, delta):
    """Roll an image sideways."""
    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))
    part1.load()
    part2.load()
    image.paste(part2, (0, 0, xsize-delta, ysize))
    image.paste(part1, (xsize-delta, 0, xsize, ysize))

    return image

# 处理图片偏移
im0 = roll(im, 100)

# 将rgb的模式重新调整
r, g, b = im.split()
im1 = Image.merge("RGB", (b, g, r))

# 将图片大小调整为128 X 128
out = im.resize((128, 128))

# 将图片做旋转
out = im.rotate(45) # 逆时针旋转45度
out = im.transpose(Image.FLIP_LEFT_RIGHT) # 左右翻转
out = im.transpose(Image.FLIP_TOP_BOTTOM) # 上下翻转
out = im.transpose(Image.ROTATE_90) # 逆时针90度
out = im.transpose(Image.ROTATE_180) # 逆时针180度
out = im.transpose(Image.ROTATE_270) # 逆时针270度

# 以不同的模式打开图片
im = Image.open("bg1.jpg").convert("L")

# 图片增强
out = im.filter(ImageFilter.DETAIL)

# 调整对比度、亮度、色彩平衡和清晰度
enh = ImageEnhance.Contrast(im)
enh.enhance(1.3).show("30% more contrast")

# 调用客户端显示
im.show()

相关文章

网友评论

      本文标题:Python的Pillow模块相关使用

      本文链接:https://www.haomeiwen.com/subject/bhuacftx.html