Python Image(PIL)库没有按照kwargs正确调整大小

时间:2014-07-12 18:58:57

标签: python image python-imaging-library

这是我的代码:

import Image
import sys
import json

if __name__ == '__main__':
    args = json.loads(sys.argv[1])
    srcPath = args.get('srcPath')
    image = Image.open(srcPath)
    sizes = {}

    for variant_name, dimensions in args.get('sizes').items():
        if '%' in dimensions:
            sizes[variant_name] = image.size
        else:
            width = int(dimensions.split('x')[0])
            height = int(dimensions.split('x')[1])
            widthAndHeight = (width, height)
            sizes[variant_name] = widthAndHeight

    for key, val in sizes.items():
        imageName = key + '.' + srcPath.split('.')[1]
        convertedImage = image.resize(val, Image.ANTIALIAS)
        image.save(imageName)
        print 'done'

我打电话给:

python image.py '{"sizes":{"large":"200x150","orig":"100%x100%"},"srcPath":"/Users/bobcobb/Desktop/avocado.png"}'

如果传入参数100%x100%,那么我想调整大小为原始大小,否则,我想调整传入大小。因此,上面的代码将生成2个图像(一个原始,另一个200x150)。

现在,它只是将图像保存为两者的原始大小。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的问题是已调整大小的图片已分配到convertedImage,但您保存原始image(以新文件名表示)。

所以改变这一行

image.save(imageName)

convertedImage.save(imageName)

解决了这个问题。