python 图片处理工具

前言

最近在学网页制作,遇到一个很糟心的问题,老是找不对尺寸合适的图片,于是萌生了写一个图片处理工具的脚本。

代码

from PIL import Image
import optparse
# import logging

# logger = logging.basicConfig(level=logging.DEBUG)
usage = 'Usage: %prog [-h-o-c1-c2-cc-p] arg1 arg2 ...'
parser = optparse.OptionParser(usage, version="%prog 1.0")
parser.add_option('-o', '--output', type=str,
                  action='store', dest='output', 
                  metavar="FILE", help='write output to FILE')
parser.add_option('-s', '--show',
                  action='store_true', dest='show',
                  help='show image attributes')
parser.add_option('--c1', '--pisel_one',
                  action='store_true', dest='pisel_one',
                  metavar='pisel(1024,768)',
                  help="change image pixel in (1024,768),old image's pisel must larger than new image")
parser.add_option('--c2', '--pisel_two',
                  action='store_true', dest='pisel_two',
                  metavar='pisel(1920,1280)',
                  help="change image pixel in (1920,1280),old image's pisel must larger than new image")
parser.add_option('--cc', '--pisel_xy', type=str,
                  action='store', dest='pisel_xy',
                  metavar='pisel(x,y)', help="change image pixel in (x,y),old image's pisel must larger than new image")


def storePicture(ins, out):
    try:
        lena = Image.open(ins)
        lena.save(out)
    except Exception as e:
        print '''can't open image "{}"'''.format(ins)


def change2pixel_one(ins, output):
    try:
        lena = Image.open(ins)
        old_size = lena.size
        lena.thumbnail((1024, 768))
        lena.save(output)
        print '''success change "{}{}" into "{}{}".'''.format(ins, old_size, output, lena.size)
    except Exception as e:
        print '''can't open image "{}"'''.format(ins)


def change2pixel_two(ins, output):
    try:
        lena = Image.open(ins)
        old_size = lena.size
        lena.thumbnail((1920, 1280))
        lena.save(output)
        print '''success change "{}{}" into "{}{}".'''.format(ins, old_size, output, lena.size)
    except Exception as e:
        print '''can't open image "{}"'''.format(ins)


def change2pixel_xy(ins, output, xy):
    try:
        lena = Image.open(ins)
        old_size = lena.size
        xy = xy.split(',')
        lena.thumbnail((int(xy[0]), int(xy[1])))
        lena.save(output)
        print '''success change "{}{}" into "{}{}".'''.format(ins, old_size, output, lena.size)
    except Exception as e:
        print e.message
        # print '''can't open image "{}"'''.format(ins)


def showAttribute(ins):
    try:
        lena = Image.open(ins)
        print "mode:{}\nsize:{}".format(lena.mode, lena.size)
    except Exception as e:
        print '''can't open image "{}"'''.format(ins)


(options, args) = parser.parse_args()
if not args:
    print 'please input you image!'
else:
    output=args[0]
    ins = args[0]
    if options.output:
        output = options.output
    if options.show:
        showAttribute(ins)
    if options.pisel_one:
        change2pixel_one(ins, output)
    if options.pisel_two:
        change2pixel_two(ins, output)
    if options.pisel_xy:
        xy = options.pisel_xy
        change2pixel_xy(ins, output, xy)

总结

代码还很不完善,脚本已上传至github,我会持续进行更新。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值