批量截图(截取正方形图,哪个边短就用哪个边作为标准来截取)


功能是裁取图片中红色框的部分。
代码为:

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批量裁取图,来获取文件夹中所有图片名的更多相关文章

  1. python实现获取文件夹中的最新文件

    实现代码如下: #查找某目录中的最新文件import osclass FindNewFile: def find_NewFile(self,path): #获取文件夹中的所有文件 lists = os ...

  2. Python之获取文件夹中文件列表以及glob与fnmatch模块的使用

    获取文件夹中的文件列表 print(os.listdir("../secondPackage")) # ['__init__.py', 'secondCookBook.py', ' ...

  3. C++获取文件夹中所有文件

    获取文件夹中的文件,用到过很多次,每次用的时候都要去查下,很烦,所以想自己写下,当然,借鉴了很多其他大佬的博客 主要实现的函数,如下: void getFiles( string path, vect ...

  4. nodejs 获取文件夹中所有文件、图片 名

    //获取项目工程里的图片 var fs = require('fs');//引用文件系统模块 var image = require("imageinfo"); //引用image ...

  5. 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) ...

  6. matlab获取文件夹中的所有文件名(dir)

    当前目录中包含文件及目录如下: abc111.txt abc112.txt abc113.txt a\ (文件夹) CODE: >> dir('test')   %目录 .         ...

  7. 获取某个文件夹中所有txt文件

    <?php // 获取文件夹中的所有txt文件名 $dir = "D:/a"; //这里输入其他路径 $handle = opendir($dir."." ...

  8. python批量处理文件夹中文件的问题

    用os模块读取文件夹中文件 原来的代码: import osfrom scipy.misc import imread filenames=os.listdir(r'./unprocess')for ...

  9. Python获取文件夹下的所有文件名

    1 #获取文件夹内的图片 2 import os 3 def get_imlist(path): 4 return [os.path.join(path,f) for f in os.listdir( ...

随机推荐

  1. nginx学习http_auth_basic_module模块

    对2.html页面做授权操作 先进行账号密码的生成  使用  htpasswd -c /etc/nginx/auth_conf  用户名 输入2次密码 (如果没有htpasswd,可以使用yum  - ...

  2. day007|python基础回顾7

    文件处理 目录 文件处理 1 文件打开模式补充 2.1 文件操作之读操作 2.2 文件操作之写操作 3 控制文件指针移动 3.1 前提 3.2 f.seek() 4 文件修改的两种方式 4.1 方式一 ...

  3. PHP 获取本周、今日、本月的起始时间戳

    当前周的开始时间(周一)$begintime = mktime(0, 0, 0, date('m'), (date('d') - (date('w')>0 ? date('w') : 7) + ...

  4. C++基础练习1

    1 /* 2 //读入一个双精度浮点数,保留12位小数输出这个浮点数. 3 #include<iostream> 4 #include <iomanip> 5 using na ...

  5. 学Python,只有不到15%的同学会成功

    我给大家唱首歌:<坚持的意义> 你看过了许多书籍 你看过了许多视频 你迷失在屏幕上每一道短暂的光阴 你品尝了代码的糟心 你踏过算法的荆棘 你熟记书本里每一段你最爱的公式 却说不出你爱Pyt ...

  6. 03Python网络编程系列之服务端

    # 这里边是一个定义了服务端的一系列函数,是Python网络编程这本书第七章的第一个例子.# 这是供后边函数进行调用了,然后我们来进行研究网络的单线程编程,多线程编程.异步网络编程等.# 导入网络编程 ...

  7. 03_Service的绑定

    Start Service启动的Service,Application退出,Service也不会退出: Bind Service启动的Service,Application退出,Service就会退出 ...

  8. python应用(7):输入与输出

    如前文,流程是程序的主角,而流程一般都需要处理数据,那数据如何进到流程,而最终处理后的数据又如何表现,这就是流程的输入与输出的问题. 本文介绍流程处理的数据的输入与输出. 流程中的输入,一般都会先保存 ...

  9. pthread 互斥量

    参考文献: [1] https://computing.llnl.gov/tutorials/pthreads/ 温故知新 在 OS 中,每个进程都独立地拥有: Process ID, process ...

  10. 用java以正确的姿势刷CSP

    许多程序算法考试中,用java是个不错的选择,它几乎实现了所有c++能实现的,所以越来越受Acmer的欢迎.总结一下用到的一些技巧和方法.更多关于csp的可参考海岛blog|皮卡丘 1. 输出 规格化 ...