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. postgres导入和导出

    导出整个数据库: pg_dump -h 127.0.0.1 -U zhang mydb >mydb_dum.sql 导出某个表: pg_dump -h 127.0.0.1 -U zhang my ...

  2. mysql的auto-rehash简介

    今天在看mysql的配置文件的时候,发现有"auto-rehash"不明白什么意思,在此记录一下,auto-rehash是自动补全的意思,就像我们在linux命令行里输入命令的时候 ...

  3. PAT Basic 1016 部分A+B (15 分)

    正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​A​​ 组成的新整数 P​A​​.例如:给定 8,D​A​​=6,则 A 的“6 部分”P​A​​ 是 66,因为 A 中有 ...

  4. LCA-tarjan understand 2

    下面是一个最基础的LCA题目    http://poj.org/problem?id=1330 赤裸裸的 题意 输入cas 后  有cas组数据 输入 n   再输入n-1 条边    之后输入x ...

  5. ffmpeg函数04__v_register_output_format()

    注册复用器,编码器等的函数av_register_all() 注册编解码器avcodec_register_all() 注册复用器的函数是av_register_output_format(). 注册 ...

  6. Spring JdbcTemplate + transactionTemplate 简单示例 (零配置)

    jdbcTemplate简介 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中. JdbcTempla ...

  7. dlopen用法

    1. 包含头文件  #include<dlfcn.h> 2. 函数定义 void * dlopen(const char* pathName, int mode); pathName 指的 ...

  8. 基于idea的maven(一)Maven的安装

    1.Maven前置依赖 检查电脑是是否安装java 2.下载maven 网址 www.apache.org 解压 maven 压缩包, 并创建相应的maven本地仓库的路径. 打开 conf文件夹中 ...

  9. 【Winform-ComboBox】实现ComboBox下拉框与数据库的绑定

    实现效果如下: 1.设计窗体 下拉框的名称cmbName 2.连接数据库 DBHelper类代码: class DBHelper { /// <summary> /// 创建静态连接字符串 ...

  10. css-动画,a标签下,文字加下划线,而且动画是由中间向两边扩展开

    效果: html: <div class="warp"> <a class="welcome">期待您的参与</a> < ...