python图片批量裁剪

原创 2017年01月03日 16:22:56

测试中对图片有的地方对大小有要求,有的需要裁剪边缘,花了一点时间做了个图片的批量裁剪,同时也学习了python对文件的简单操作

#coding=utf-8
#
# 测试需要,裁剪图片,使用之前学过的技术
# 做一个裁剪的小案例

import os
#读取path路径下的 jpg文件
def getAllImages(path):
    #f.endswith()  限制文件类型
    #f.endswith('.jpg')|f.endswith('.png')  改成这句可以读取jpg/png格式的文件
    #注意 返回的是绝对路径
   return [os.path.join(path,f) for f in os.listdir(path) if f.endswith('.jpg')]

import pylab as plb
import PIL.Image as Image
#循环读图
for path in getAllImages(r'D:\\test'):
    #读图
    img = Image.open(path)
    #显示
    plb.imshow(img)
    #设置裁剪点(4个)
    corner = plb.ginput(4)
    #顺时针取点求解
    left = (corner[0][0] + corner[3][0])/2
    top = (corner[1][1] + corner[0][1])/2
    reight = (corner[1][0] + corner[2][0])/2
    under = (corner[3][1] + corner[2][1])/2
    #print left,top,reight,under
    #box = [left,top,reight,under]
    #box中的数必须是 int 否则会报错
    box = [int(left),int(top),int(reight),int(under)]
    #裁剪
    img2 = img.crop(box)
    #显示裁剪后的效果
    #plb.imshow(img2)
    #plb.show()
    #储存为原来路径覆盖原文件
    img2.save(path)
plb.show()

注意:

1.box中是 int 型 ,不是整形会报错
2.裁剪选点需要顺时针选点,当然也可根据需要自行修改源码
3.f.endswith(‘.jpg’)|f.endswith(‘.png’) 可以读取jpg/png格式的文件
4.getAllImages(path)返回类型为绝对路径

版权声明:本文为博主原创文章,转载请注明出处!!!(●'◡'●) 举报

相关文章推荐

python图片批量裁剪

测试中对图片有的地方对大小有要求,有的需要裁剪边缘,花了一点时间做了个图片的批量裁剪,同时也学习了python对文件的简单操作#coding=utf-8 # # 测试需要,裁剪图片,使用之前学过的技术...

图片裁剪

突然想到了之前整理的图片裁剪插件,想了下实现的三种原理,下面就写一下简单的例子: 背景定位 代码块 clip切割 代码块 position定位 代码块由于只是简单说了下实现原理,网上也有很多插件,但是...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

图片裁剪

这篇将讲到图片裁剪,会讲到两种方案。 先看效果图: 一、系统默认的裁剪方案:系统默认会有一个Gallery,里面提供裁剪功能,跳转到系统裁剪界面有很多种方法,下面是其中的一种。...

裁剪图片

using System; using System.Collections.Generic; using System.Text; using System.IO; using System...

图片剪裁

最近用户上传的头像需要剪裁,要适配手机和pc端。花了点时间终于搞定了,废话不多说,效果图走一波。 OK头像上传成功。 上面就是整个效果啦。接下来介绍具体实现 关键代码走起 ...

图片裁剪

在现在许多修图应用中和系统相册中预览图片时,通常我们会有裁剪图片的需求,那么如何在android中自定义裁剪呢?,那么我直接看代码: 1.定制裁剪框浮层(FloatDrawable.java):im...

裁剪图片

裁剪图片 /**       * 截图后另存为       *       *@paramrect   ...

图片处理之裁剪图片

package com.media.gx.utils; import java.awt.Rectangle; import java.awt.image.BufferedImage; import ...

android图像裁剪

转自:http://blog.csdn.net/zhaokaiqiang1992/article/details/43022023  在做APP的时候,如果有用户系统功能,那么一般都逃不了这...

裁剪图片(Java端)

package cn.com; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.F...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)