python的图形模块PIL小记
前言:
跟我一块住的室友是个搞通信,每天下班后基本必须做的事情是,第一P图,将那些不合格的图片上的数据,p成合格的。第二就是将做好的P图以及产生的日志文件按照固定的名字重新命名。我为了他能够早点睡觉,就具体问问了他的工作内容,无外乎就是p图修改某个图片上的具体数字,然后对于修改好的图片,以及一些log文件按照固定的格式命名。我想了下这些不正好python能够很好的实现啊,于是就开动了。
正文
首先简单的就是给文件重新命名,很简单,就是使用os模块,然后结合os.listdir()循环,就改好了,至于自动化的P图,我想到了PIL模块,虽然以前没用过,但是感觉应该不会太难。
废话不多说,见程序。有个前提是必须保证两个图片尺寸是一样的。
如下将1换成2,将一张图片上的1截取下来贴到另外一张相同尺寸的图片的相同位置
贴到这里
程序如下
#!/usr/bin/env python #_*_coding:utf-8_*_ from PIL import Image from PIL import Image, ImageDraw import os path = r'F:\untitled5\wenjian\301u' path_cai = r'F:\untitled5\wenjian\tupian\zzz.jpg' for i in os.listdir(path): im01 = Image.open( path+"\\"+i)#呗修改的图片 im02 = Image.open(path_cai)#要裁切的图片 assert isinstance(im01, Image.Image) #为了能够补全 assert isinstance(im02, Image.Image) # box=[778,110,883,168] #裁切的坐标 box2=[778,110,870,168] #特殊处理的 box1 = [510,580,560,660] # im_crop = im02.crop(box) # #裁切图片裁切im02上图片到im01上 im_crop = im02.crop(box2) im_crop_1 = im02.crop(box1) print im_crop.mode print im_crop.size # im01.paste(im_crop, (778,110,883,168)) #原来的 im01.paste(im_crop, (778,110,870,168)) im01.paste(im_crop_1,(510,580,560,660)) im01.save( path+"\\"+i) # im01.show() print 'ok'