用Python批量处理图片


因为从网上爬取了一堆图片的分辨率都各不相同,而且图片数量较大,所以从网上找了Python处理图片的代码,自己修改功能/bug之后的代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PIL import Image	# import Image --> "ImportError: No module named Image"
import glob, os

def thumbnail():
    for files in glob.glob('D:\photos\*.jpg'):
        filepath,filename = os.path.split(files)
        filterame,exts = os.path.splitext(filename)
        opfile = 'D:\photos2\'	# output path
        if (os.path.isdir(opfile)==False):
            os.mkdir(opfile)
        im = Image.open(files)
        w,h = im.size
        #im_ss = im.resize((400,400))
        #im_ss = im.convert('P')
        im_ss = im.resize((int(w*0.12), int(h*0.12)))
        im_ss.save(opfile+filterame+'.jpg')

if __name__=='__main__':
    thumbnail()
    print u'哈哈OK啦...'

要注意的地方就是直接:import Image会报错,需要将其修改为:from PIL import Image

然后就是路径字符串中的反斜杠问题,其实在Windows系统上路径的“正统”写法应该是:

path = os.path.normcase(“c:/mydir/mysubdir/”)
os.path.normcase在Windows平台下会自动把正斜杠转换成反斜杠。

,

《“用Python批量处理图片”》 有 1 条评论

  1. 下载的图片太模糊?8 个方法把它变清晰
    http://sspai.com/post/44668
    `
    Waifu2x
    Bigjpg:国内版 Waifu2x
    Waifu2x-caffe:带显卡硬件加速的 Waifu2x

    除了人工智能和其他图片放大算法,还有一种方法可以无限提升图片清晰度 —— 而且是一劳永逸地,那就是将图片转换成矢量图。

    什么是矢量图呢?我们都知道,一般位图图片保存的是像素信息,例如一张 200*200 分辨率的图片保存了 4 万个像素点的信息;而矢量图保存的是关键点的位置信息,还有通过这些点连线组成图形的形状、轮廓、大小等属性。

    矢量图有一个优点,那就是没有分辨率这个概念。通过数学计算它保存的点与图形信息,呈现出我们能看到的图片,所以矢量图放大多少倍都不会失真。
    `

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注