戊辰人博客

青,取之于蓝而青于蓝;冰,水为之而寒于水。

Python之PIL图片处理

日期:2015年12月28日 作者: 分类:编程 阅读:991

由于工作原因需要将大量jpg图片文件缩放成宽度为1000像素的图片上传,最初是用图片处理工具进行一张张处理,但效率十分低下,于是就自己动手用Python实现一个批量处理工具。

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

在Debian/Ubuntu Linux下直接通过apt安装:

sudo apt-get install python-imaging

为了方便不同宽度的需求,程序要支持指定宽度,缩放后的图片保存在当前目录下的子目录中。程序代码如下

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Filename: resize-img.py
# require: python-pil python-imaging

import os
import sys
import Image

# 重新设置图片大小
def resize_img(width, filename):
    newdir = "size_" + str(width)
    if not os.path.exists(newdir):
        os.mkdir(newdir)
    img = Image.open(filename)
    (x, y) = img.size

    x_s = width
    y_s = y * x_s / x

    out = img.resize((x_s, y_s), Image.ANTIALIAS)
    out.save(newdir + '/' + filename, 'jpeg');


if __name__ == "__main__":
    if len(sys.argv) != 2:
        print 'usage: ' + sys.argv[0] + " width(px)"
        print 'e.g. : ' + sys.argv[0] + " 1000"
        sys.exit(1)

    files = os.listdir(os.getcwd())
    for filename in files:
        if 'jpg' == filename.split('.')[-1].lower():
            resize_img(int(sys.argv[1]), filename)
            print 'resize ' + filename + ' succes'

使用方法:

# 先要给resize-img.py可执行权限
chmod 755 resize-img.py

# 将当前文件夹下的jpg图片缩放到1000px
# 缩放的图片会保存在当前目录下的size_1000目录中
./resize-img.py 1000

# 将当前文件夹下的jpg图片缩放到1200px
# 缩放的图片会保存在当前目录下的size_1200目录中
./resize-img.py 1200

 

标签:,

除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址

本文地址:https://wanglu.info/1120.html

1条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注