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. Redis总结1

    一.Redis安装(Linux) 1.在官网上下载Linux版本的Redis(链接https://redis.io/download) 2.在Linux的/usr/local中创建Redis文件夹mk ...

  2. springboot-activiti TaskLISTener无法注入service

    转自CSDN :https://blog.csdn.net/Laiguanfu/article/details/89366193 第一步创建springUtil类 @Componentpublic c ...

  3. ImportError: attempted relative import with no known parent package

    或者检查所导包是否存在__init__.py文件,没有则添加上即可使当前文件夹变为包.

  4. python出现Non-ASCII character '\xe6' in file statistics.py on line 19, but no encoding declared错误

    可按照错误建议网址查看http://www.python.org/peps/pep-0263.html 发现是因为Python在默认状态下不支持源文件中的编码所致.解决方案有如下三种: 一.在文件头部 ...

  5. Tableau 分群

    对数据的特征进行分析,分群. 数据选用的是Iris data 下载地址:http://archive.ics.uci.edu/ml/machine-learning-databases/iris/ 1 ...

  6. 如何卸载Win10 RS3上预装的office2016

    原因分析: 由于微软在Win10 1709(RS3版本)上改变了office 2016家庭和学生版的预装方式(预装office 2016改为Windows Store应用商店的即点即用程序),无法使用 ...

  7. 基于TCP的客户端、服务器端socket编程

    一.实验目的 理解tcp传输客户端服务器端通信流程 二.实验平台 MAC OS 三.实验内容 编写TCP服务器套接字程序,程序运行时服务器等待客户的连接,一旦连接成功,则显示客户的IP地址.端口号,并 ...

  8. WebService帮助类改良版,支持多webservice

    帮助类代码 using System; using System.CodeDom; using System.CodeDom.Compiler; using System.Collections.Ge ...

  9. django第一个页面

    在工程创建完毕的基础上,创建两个目录,static;templates static 里面放一些静态文件,例如css,imj,js等文件 templates 放html文件,需要在settings.p ...

  10. PyCharm控制台输出乱码

    IDE Encoding设置为GBK后,在运行程序,中文就显示正常了 据说是因为ide编码不能设置为utf-8,需要设置为gdb,因为这个控制台的代码需要和windows保持一致. 另外还有一个问题就 ...