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


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

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. ElasticSearch 分词器,了解一下

    这篇文章主要来介绍下什么是 Analysis ,什么是分词器,以及 ElasticSearch 自带的分词器是怎么工作的,最后会介绍下中文分词是怎么做的. 首先来说下什么是 Analysis: 什么是 ...

  2. redlock分布式锁真的安全吗

    此文是对http://zhangtielei.com/posts/blog-redlock-reasoning-part2.html文章的个人归纳,如有问题请联系删除 什么是redlock redlo ...

  3. win10安装jenkins忘记密码的解决方法

    jenkins安装完了一直没用,突然想学习的时候,忘记了登陆密码. 一:修改配置文件 1. 打开jenkins的安装目录,选择users下面的admin目录下的config.xml文件   我的文件路 ...

  4. [GIT]获取git最新的tag

    背景 公司前端项目在Jenkins中打包,每次打包需要将新tag回推到仓库中.但是打包失败后如果不删除tag的话下次打包就会失败,需要手动删除,所以在Jenkinsfile中就需要在打包失败时自动删除 ...

  5. Java数组作业

    1 //输入一组数(10个),找出最大值,并给出最大值的位置 2 package test; 3 4 public class test1_1 { 5 public static double max ...

  6. 论如何优雅的抛出SpringBoot注解的异常

    平时我们在写代码的时候肯定要进行很多参数验证,最开始的时候我们一般都是这样处理的  如下图   看起来好像也没什么,但是  如果参数多了呢?你就会看到这样的校验 OMG!!!  有没有感觉稍微有点视觉 ...

  7. 【2014广州市选day1】JZOJ2020年9月12日提高B组T3 消除游戏

    [2014广州市选day1]JZOJ2020年9月12日提高B组T3 消除游戏 题目 Description 相信大家玩过很多网络上的消除类型的游戏,一般来说就是在一个大拼图内找出相同的部分进行最大程 ...

  8. C++ 虚基类的定义、功能、规定

    原文声明:http://blog.sina.com.cn/s/blog_93b45b0f01011pkz.html 虚继承和虚基类的定义是非常的简单的,同时也是非常容易判断一个继承是否是虚继承的,虽然 ...

  9. 第8.33节 Python中__getattr__以及__getattr__与__ getattribute__的关系深入剖析

    一. 引言 前面几节分别介绍了Python中属性操作捕获的三剑客:__ getattribute__方法.__setattr__方法.__delattr__方法,为什么__ getattribute_ ...

  10. 第11.11节 Python正则表达式的指定重复次数匹配模式及元字符”{}”功能介绍

    在<第11.8节 Pytho正则表达式的重复匹配模式及元字符"?". "". "+"功能介绍>和<第11.10节 Pyth ...