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. Vue中如何插入m3u8格式视频,3分钟学会!

    ​        大家都知道video只支持ogg.webm.MP4格式,但是要是m3u8格式的视频怎么办?最近遇到这个问题在网上找了好多办法都不行,最后找到video.js后才完美解决,所以决定写一 ...

  2. fiddler抓包小技巧之自动保存抓包数据(可根据需求过滤)

    首先 选择 如果有别的提示的话,你就按着提示走,就会安装一个编辑器,叫Fiddler Script. 正常情况下,你按着上面操作之后就会出现如下界面: 完事了之后,按下Ctrl+F来查找OnBefor ...

  3. python的内建函数chr,ord

    python的内建函数chr,ord,unichr chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符.unichr()跟它一样,只不过返回的是Unic ...

  4. 华为服务器XH628配置软RAID

    1.       硬RAID 1.1.       配置准备 本机型号为华为XH628,配有两块400GSSD,12块1.2TSAS盘.其中2块SSD做RAID1为系统盘,12块SAS盘做RAID5, ...

  5. Jenkins 入门系列--jenkins 介绍

    第一章 Jenkins是什么? Jenkins 是一个可扩展的持续集成引擎. 主要用于: l 持续.自动地构建/测试软件项目. l 监控一些定时执行的任务. Jenkins拥有的特性包括: l 易于安 ...

  6. 002-loganalyzer装完报错no syslog records found

    1.登录mysql查看库Syslog中的表SystemEvents;是否有返回数据 # select * from Syslog.SystemEvents;  #又返回数据说明rsyslog配置正确, ...

  7. 页面内置函数${fn:}

    引入头文件<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions " %&g ...

  8. 欧拉函数 || [SDOI2008]仪仗队 || BZOJ 2190 || Luogu P2158

    题面:P2158 [SDOI2008]仪仗队 题解: 显然除了(1,1),(0,1),(1,0)三个点外,对于其他点(x,y)只要满足gcd(x,y)==1就可以被看到 然后这些点是关于y=x对称的, ...

  9. ELK是什么?

    ELK = ElasticSearch + Logstash + Kibana  Elasticsearch:后台分布式存储以及全文检索 Logstash :  日志加工.“搬运工” Kibana : ...

  10. Spring源代码下载和导入eclipse

    下载源代码包并解压,我下载的是3.2版本,下载地址在https://github.com/spring-projects/spring-framework/tree/3.2.x 因为Spring是使用 ...