8.进行图片的裁剪,同时使用resize将图片的维度进行变化
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将图片的维度进行变化的更多相关文章
- C# 图片的裁剪,两个图片合成一个图片
图片的裁剪,两个图片合成一个图片(这是从网上摘的) /// <summary> /// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_ne ...
- 如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放
如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放 参考网站:nginx-lua-fas ...
- C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...
- ImageLoader框架的使用、调用系统相册显示图片并裁剪显示、保存图片的两种方式
ImageLoader虽然说是一个相对于比较老的一个框架了 ,但是总的来说,还是比较好用的,今天我就总结了一下它的用法.还有调用系统相册并裁剪,以及,通过sharedpreference和文件存储来保 ...
- iOS圆形图片裁剪,以及原型图片外面加一个圆环
废话不多说,直接上代码 #import "ViewController.h" @interface ViewController () @property (nonatomic,s ...
- android 照相或从相册获取图片并裁剪
照相或从相册获取图片并裁剪 在android应用中很多时候都要获取图片(例如获取用户的头像)就需要从用户手机上获取图片.可以直接照,也可以从用户SD卡上获取图片,但获取到的图片未必能达到要求.所以要对 ...
- bootstrap-wysiwyg 结合 base64 解码 .net bbs 图片操作类 (二) 图片裁剪
图片裁剪参见: http://deepliquid.com/projects/Jcrop/demos.php?demo=thumbnail 一个js插件 http://www.mikes ...
- 利用cropper插件裁剪本地图片,然后将裁剪过后的base64图片上传至七牛云空间
现在做的项目需要做一些图片处理,由于时间赶急,之前我便没有处理图片,直接将图片放在input[type=file]里面,以文件的形式提交给后台,这样做简直就是最低级的做法,之后各种问题便出来了,人物头 ...
- iOS UI进阶-1.1 Quartz2D 图片水印/裁剪/截图
图片水印 UIImage+MJ.h #import <UIKit/UIKit.h> @interface UIImage (MJ) /** * 打水印 * * @param bg 背景图片 ...
随机推荐
- Vue中如何插入m3u8格式视频,3分钟学会!
大家都知道video只支持ogg.webm.MP4格式,但是要是m3u8格式的视频怎么办?最近遇到这个问题在网上找了好多办法都不行,最后找到video.js后才完美解决,所以决定写一 ...
- fiddler抓包小技巧之自动保存抓包数据(可根据需求过滤)
首先 选择 如果有别的提示的话,你就按着提示走,就会安装一个编辑器,叫Fiddler Script. 正常情况下,你按着上面操作之后就会出现如下界面: 完事了之后,按下Ctrl+F来查找OnBefor ...
- python的内建函数chr,ord
python的内建函数chr,ord,unichr chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符.unichr()跟它一样,只不过返回的是Unic ...
- 华为服务器XH628配置软RAID
1. 硬RAID 1.1. 配置准备 本机型号为华为XH628,配有两块400GSSD,12块1.2TSAS盘.其中2块SSD做RAID1为系统盘,12块SAS盘做RAID5, ...
- Jenkins 入门系列--jenkins 介绍
第一章 Jenkins是什么? Jenkins 是一个可扩展的持续集成引擎. 主要用于: l 持续.自动地构建/测试软件项目. l 监控一些定时执行的任务. Jenkins拥有的特性包括: l 易于安 ...
- 002-loganalyzer装完报错no syslog records found
1.登录mysql查看库Syslog中的表SystemEvents;是否有返回数据 # select * from Syslog.SystemEvents; #又返回数据说明rsyslog配置正确, ...
- 页面内置函数${fn:}
引入头文件<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions " %&g ...
- 欧拉函数 || [SDOI2008]仪仗队 || BZOJ 2190 || Luogu P2158
题面:P2158 [SDOI2008]仪仗队 题解: 显然除了(1,1),(0,1),(1,0)三个点外,对于其他点(x,y)只要满足gcd(x,y)==1就可以被看到 然后这些点是关于y=x对称的, ...
- ELK是什么?
ELK = ElasticSearch + Logstash + Kibana Elasticsearch:后台分布式存储以及全文检索 Logstash : 日志加工.“搬运工” Kibana : ...
- Spring源代码下载和导入eclipse
下载源代码包并解压,我下载的是3.2版本,下载地址在https://github.com/spring-projects/spring-framework/tree/3.2.x 因为Spring是使用 ...