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'

 

posted @ 2017-09-13 15:42  Dicky_Zhang  阅读(276)  评论(0编辑  收藏  举报