zoukankan      html  css  js  c++  java
  • 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:untitled5wenjian301u'
    path_cai = r'F:untitled5wenjian	upianzzz.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'
  • 相关阅读:
    动态数组arraylist的使用
    第一次
    layui.mobile.css
    index.html
    Ansible部署配置
    微服务项目配置文件
    镜像挂载
    网卡设置
    获取内存信息
    超时方法
  • 原文地址:https://www.cnblogs.com/Dicky-Zhang/p/7515278.html
Copyright © 2011-2022 走看看