用Python批量裁取图,来获取文件夹中所有图片名
批量截图(截取正方形图,哪个边短就用哪个边作为标准来截取)

功能是裁取图片中红色框的部分。
代码为:
import sys
from tkinter.tix import Tk
from PIL import Image
import os
import tkinter
# 获取文件夹中所有图片名
def getFileName(filePath):
# file_dir = r"D:\\image123"
file_dir = filePath
i = 1
imageNameList = None
for root, dirs, files in os.walk(file_dir):
# print(i)
i += 1
# print(root) #当前目录路径
# print(dirs) #当前路径下所有子目录
# print(files) #当前路径下所有非目录子文件
imageNameList = files
# print('所有的文件名为:', fileNameList)
return imageNameList
# 裁剪正方形图,哪个边短就用哪个边作为标准来截取
def cutImage(path, imageName):
# img = Image.open("D://image123//1.png")
# print('文件名为:', path + imageName)
img = Image.open(path + imageName)
# 图片的宽度和高度
img_size = img.size
# print("图片宽度和高度分别是{}".format(img_size))
cutSize = img_size[0] if (img_size[0] < img_size[1]) else img_size[1]
if (img_size[0] > img_size[1]): # 宽比高长
startX = (img_size[0] - img_size[1]) / 2 # 计算中间的位置
# 截取中间的位置图片
cropped = img.crop((startX, 0, cutSize + startX, cutSize)) # (left, upper, right, lower)
else: # 高比宽长
startY = (img_size[1] - img_size[0]) / 2 # 计算中间的位置
# 截取中间的位置图片
cropped = img.crop((0, startY, cutSize, cutSize + startY)) # (left, upper, right, lower)
# 判断 D://cut_ok 目录是否存在,不存在则新建
if not os.path.exists('D://cut_ok'):
os.makedirs('D://cut_ok')
# 保存图片
cropped.save("D://cut_ok//" + imageName)
def start(filePath):
print("路径==:", filePath)
allImage = getFileName(filePath)
for fileName in allImage:
print(fileName)
# cutImage("D://image123//", fileName)
cutImage(filePath+"//", fileName)
if __name__ == '__main__':
if hasattr(sys, 'frozen'):
os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
# 界面****begin
window = Tk()
window.geometry("300x100")
# L1 = tkinter.Label(window, text="文件夹名:")
# L1.pack()
E1 = tkinter.Entry(window, bd=3, )
E1.pack()
# 获取输入框的值:E1.get()
B = tkinter.Button(window, text="开始剪切", command=lambda: start(E1.get()))
B.pack()
L1 = tkinter.Label(window, text="完成的图片在 D://cut_ok")
L1.pack()
# 界面****end
# 进入消息循环
window.mainloop()
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理
想要获取更多Python学习资料可以加
QQ:2955637827私聊
或加Q群630390733
大家一起来学习讨论吧!
用Python批量裁取图,来获取文件夹中所有图片名的更多相关文章
- python实现获取文件夹中的最新文件
实现代码如下: #查找某目录中的最新文件import osclass FindNewFile: def find_NewFile(self,path): #获取文件夹中的所有文件 lists = os ...
- Python之获取文件夹中文件列表以及glob与fnmatch模块的使用
获取文件夹中的文件列表 print(os.listdir("../secondPackage")) # ['__init__.py', 'secondCookBook.py', ' ...
- C++获取文件夹中所有文件
获取文件夹中的文件,用到过很多次,每次用的时候都要去查下,很烦,所以想自己写下,当然,借鉴了很多其他大佬的博客 主要实现的函数,如下: void getFiles( string path, vect ...
- nodejs 获取文件夹中所有文件、图片 名
//获取项目工程里的图片 var fs = require('fs');//引用文件系统模块 var image = require("imageinfo"); //引用image ...
- PHP获取文件夹中的所有文件(包括子目录)
方法一: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 function tree($directory) ...
- matlab获取文件夹中的所有文件名(dir)
当前目录中包含文件及目录如下: abc111.txt abc112.txt abc113.txt a\ (文件夹) CODE: >> dir('test') %目录 . ...
- 获取某个文件夹中所有txt文件
<?php // 获取文件夹中的所有txt文件名 $dir = "D:/a"; //这里输入其他路径 $handle = opendir($dir."." ...
- python批量处理文件夹中文件的问题
用os模块读取文件夹中文件 原来的代码: import osfrom scipy.misc import imread filenames=os.listdir(r'./unprocess')for ...
- Python获取文件夹下的所有文件名
1 #获取文件夹内的图片 2 import os 3 def get_imlist(path): 4 return [os.path.join(path,f) for f in os.listdir( ...
随机推荐
- python3基础3
# 匿名函数: bbb = lambda a, b: a + b print(bbb(1,1)) # 函数 def add(a=None, b=None): """ 接收 ...
- Visual Studio使用Git忽略不想上传到远程仓库的文件
前言: 作为一个.NET开发者而已,有着宇宙最强IDE:Visual Studio加持,让我们的开发效率得到了更好的提升.我们不需要担心环境变量的配置和其他代码管理工具,因为VS有丰富的拓展工具.废话 ...
- redis 五大数据类型使用
redis 五大数据类型使用 字符串str 单个值 127.0.0.1:6379> set name pp # 设置键值[O(1)] OK 127.0.0.1:6379> setex na ...
- CentOS 7下安装Docker
安装一些必要的系统工具: sudo yum install -y yum-utils device-mapper-persistent-data lvm2 添加软件源信息: sudo yum-conf ...
- SpringBoot集成FastDFS依赖实现文件上传
前言 对FastDFS文件系统安装后的使用. FastDFS的安装请参考这篇:Docker中搭建FastDFS文件系统(多图) 本文环境:IDEA + JDK1.8 + Maven 本文项目代码:ht ...
- 【NOIP2017提高A组模拟9.12】Arrays and Palindrome
[NOIP2017提高A组模拟9.12]Arrays and Palindrome[SPJ] 题目 Description Input Output Sample Input 1 6 Sample O ...
- 20201101_Python的虚拟环境问题
虚拟环境使用总结: 1. 安装创建虚拟环境要使用的工具virtualenv pip install virtualenv -i https://pypi.douban.com/simple/ #使用 ...
- 第7.11节 案例详解:Python类实例变量
上节老猿介绍了实例变量的访问方法,本节结合一个具体案例详细介绍实例变量访问. 本节定义一个Vehicle类(车),它有三个实例变量self.wheelcount(轮子数).self.power(动力) ...
- PyQt+moviepy音视频剪辑实战1:多个音视频合成顺序播放或同屏播放的视频文件实现详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...
- SUCTF pythonigx
0x00知识点 nginx配置 配置文件存放目录:/etc/nginx主配置文件:/etc/nginx/conf/nginx.conf管理脚本:/usr/lib64/systemd/system/ng ...