1.img.crop((x1, y1, x2, y2)) 进行图片的裁剪

参数说明: x1, y1, x2, y2 表示图片的大小

2. img.resize((w, h)) # 进行图片的维度变化

参数说明:(w, h) 表示变换以后的图片的大小

代码说明:创建一个新的文件,对每张图片进行1/4 - 3/4进行裁剪, 对裁剪以后的图片进行图片维度的变化

第一步:进行文件,然后创建一个文件用于进行存储,如果不存在,就使用os.mkdir 进行创建

第二步:使用img.crop() 进行图片的裁剪,使用img.resize() 进行图片的尺度变换,img.save(path) 进行图片的保存

# -*- coding: utf-8 -*-
'''
Created on 2019/7/5/0005 9:33 @Author : Sheng1994
''' import os
from PIL import Image def crop_from_image(src_file, dec_file, crop_size):
img = Image.open(src_file) # 图片打开
img_width, img_height = img.size # 图片的尺度
x_start = int(img_width / 4) # 进行图片的裁剪
y_start = int(img_height / 4)
x_move = x_start + int(img_width / 2)
y_move = y_start + int(img_height / 2)
box = (x_start, y_start, x_move, y_move)
img_crop = img.crop(box)
img_resize_crop = img_crop.resize(crop_size) # 进行尺度的变化
img_resize_crop.save(dec_file) # 进行图片的保存 def folder_for_crop(db_folder, result_folder, crop_size):
number = 0
if not os.path.exists(result_folder):
os.mkdir(result_folder)
# 第一步:进行文件的读入
for people_folder in os.listdir(db_folder):
number += 1
src_people_path = db_folder + os.sep + people_folder
dec_people_path = result_folder + os.sep + people_folder
if not os.path.exists(dec_people_path):
os.mkdir(dec_people_path)
count = 0
step = 0
for vedio_folder in os.listdir(src_people_path):
step += 1
src_vedio_folder = src_people_path + os.sep + vedio_folder
dec_vedio_folder = dec_people_path + os.sep + vedio_folder
if not os.path.exists(dec_vedio_folder):
os.mkdir(dec_vedio_folder)
for img_file in os.listdir(src_vedio_folder):
count += 1
src_img_folder = src_vedio_folder + os.sep + img_file
dec_img_folder = dec_vedio_folder + os.sep + img_file
# 第二步:进行图片的裁剪操作
crop_from_image(src_img_folder, dec_img_folder, crop_size) def run():
db_folder = 'image\\origin'
result_folder = 'image\\result'
folder_for_crop(db_folder, result_folder, (47, 55)) if __name__ == '__main__':
run()

8.进行图片的裁剪,同时使用resize将图片的维度进行变化的更多相关文章

  1. C# 图片的裁剪,两个图片合成一个图片

    图片的裁剪,两个图片合成一个图片(这是从网上摘的) /// <summary>         /// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png  新图1_ne ...

  2. 如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放

    如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放 参考网站:nginx-lua-fas ...

  3. C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi

    C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...

  4. ImageLoader框架的使用、调用系统相册显示图片并裁剪显示、保存图片的两种方式

    ImageLoader虽然说是一个相对于比较老的一个框架了 ,但是总的来说,还是比较好用的,今天我就总结了一下它的用法.还有调用系统相册并裁剪,以及,通过sharedpreference和文件存储来保 ...

  5. iOS圆形图片裁剪,以及原型图片外面加一个圆环

    废话不多说,直接上代码 #import "ViewController.h" @interface ViewController () @property (nonatomic,s ...

  6. android 照相或从相册获取图片并裁剪

    照相或从相册获取图片并裁剪 在android应用中很多时候都要获取图片(例如获取用户的头像)就需要从用户手机上获取图片.可以直接照,也可以从用户SD卡上获取图片,但获取到的图片未必能达到要求.所以要对 ...

  7. bootstrap-wysiwyg 结合 base64 解码 .net bbs 图片操作类 (二) 图片裁剪

    图片裁剪参见: http://deepliquid.com/projects/Jcrop/demos.php?demo=thumbnail        一个js插件 http://www.mikes ...

  8. 利用cropper插件裁剪本地图片,然后将裁剪过后的base64图片上传至七牛云空间

    现在做的项目需要做一些图片处理,由于时间赶急,之前我便没有处理图片,直接将图片放在input[type=file]里面,以文件的形式提交给后台,这样做简直就是最低级的做法,之后各种问题便出来了,人物头 ...

  9. iOS UI进阶-1.1 Quartz2D 图片水印/裁剪/截图

    图片水印 UIImage+MJ.h #import <UIKit/UIKit.h> @interface UIImage (MJ) /** * 打水印 * * @param bg 背景图片 ...

随机推荐

  1. 自己实现一个简化版的SpringMVC框架

    废话不多说,我们进入今天的正题,在Web应用程序设计中,MVC模式已经被广泛使用.SpringMVC以DispatcherServlet为核心,负责协调和组织不同组件以完成请求处理并返回响应的工作,实 ...

  2. linux 之实现定时任务

    一.方式一 (1)命令行 的方法: 一.方式一 需求:每分钟执行一次/etc 目录的添加 到/tmp/a.txt 中 (1) touch a.txt创建文件 (2) crotab -e 进行任务的定制 ...

  3. django优化--ORM优缺点

    谈Django绕不开ORM ORM : ORM概念,ORM特点,ORM 的优点,ORM 的缺点 orm : 对象关系映射 (Object Relational Mapping) ,用于实现面向对象编程 ...

  4. kubeDNS workflow(service registration and discovery)

    Service discovery In k8s, we usually will more than make an application instance, and also the corre ...

  5. Ubuntu中用bitbake core-image-minimal时,出错:from bb import data

    问题描述: 在准备ARM交叉编译环境时,执行完命令: DISTRO=fsl-imx-x11 MACHINE=imx6qsabresd source fsl-setup-release.sh -b bu ...

  6. 韦东山嵌入式Linux学习笔记01--转载: 板子ping不通PC怎么办

    请参考链接:https://blog.csdn.net/u013490896/article/details/71250060 我的环境: window 10 jz2440 v3 我采用的连接方式如下 ...

  7. 使用go语言开发一个后端gin框架的web项目

    用liteide来开发go的后端项目,需要注意的是环境变量要配置正确了 主要是GOROOT, GOPATH, GOBIN, PATH这几个, GOPATH主要用来存放要安的包,主要使用go get 来 ...

  8. java8学习之Stream源码分析

    上一次已经将Collectors类中的各种系统收集器的源代码进行了完整的学习,而在之前咱们已经花了大量的篇幅对其Stream进行了详细的示例学习,如: 那接下来则通过源代码的角度来对Stream的运作 ...

  9. FushionCharts

    FushionCharts官网:http://www.fusioncharts.com/ 在线Demo:http://www.fusioncharts.com/free/demos/Blueprint ...

  10. 完整的IT项目开发流程

    一般情况下,企业开发软件时会按照基线和定制两块并行方式执行项目开发工作.无论什么公司,都需要遵从一套成熟的产品研发过程体系,才能做出质量较好的产品.因此,如果出现项目较多的情况,应该合理地安排基线和定 ...