功能

  1. 批量修改当前文件夹下的jpg图片到设置的尺寸
  2. 将修改后的图片移动到 new_img 这个文件夹下

导入库

from PIL import Image                                       # 处理图片模块
import os
import shutil # 移动文件模块

如果没有请提前安装相应的库.

定义一个函数用来处理图片尺寸

def smaller_img(x, y, path):                                # x,y用来传入尺寸,path用来传入路径
old_img = Image.open(path)
img_deal = old_img.resize((x, y), Image.ANTIALIAS) # 转换图片
img_deal = img_deal.convert('RGB') # 保存为jpg格式才需要
img_deal.save('新的文件名')

遍历当前文件夹下的文件路径

now_path = os.getcwd()
new_path = os.mkdir(now_path + '\\' + 'new_img') # 创建一个名为new_img的文件夹
for file_name in os.listdir(now_path):
files_path = now_path + '\\' + file_name
print(files_path) # 输出当前目录下所有的文件的绝对路径

将修改后的图片移动到创建的新文件夹

我使用笨办法,用字符串判断的方式,来确定是否是修改后的图片文件.

shutil 模块参考链接

for move_name in os.listdir(now_path):
move_path = now_path + '\\' + move_name
if 'switch' in move_path:
shutil.move(move_path,new_dir) # shutil.move(文件/目录 , 目录)
else:
print(move_path, '无须移动')

把这些功能整合起来

from PIL import Image
import os
import shutil x = input('请输入需要修改的尺寸,长:')
x = int(x)
y = input('请输入需要修改的尺寸,高:')
y = int(y) now_path = os.getcwd()
new_path = os.mkdir(now_path + '\\' + 'new_img')
new_dir = now_path + '\\' + 'new_img' # 修改图片大小
def smaller_img(x, y, path):
path = str(path)
old_img = Image.open(path)
img_deal = old_img.resize((x, y), Image.ANTIALIAS)
img_deal = img_deal.convert('RGB')
img_deal.save('switch_' + file_name)
# 遍历文件夹下的文件,并判断是否是JPG文件
for file_name in os.listdir(now_path):
files_path = now_path + '\\' + file_name
if 'jpg' in files_path:
smaller_img(x, y, files_path)
# 遍历文件来判断是否是转换后的jpg文件
for move_name in os.listdir(now_path):
move_path = now_path + '\\' + move_name
if 'switch' in move_path:
shutil.move(move_path,new_dir)
else:
print(move_path, '无须移动')
print(file_name, 'switch success')
else:
print(file_name, 'is not img')

结束语

有错误的地方请指出,请大家多多批评

Python3 批量修改JPG图片尺寸的更多相关文章

  1. Python3批量修改指定目录下面的图片/文件名

    需求: 从网上下载的N张.png图片保存到image目录中,将下载下来的图片全部重命名test1.png/test2.png... 实现代码: 目录结构: config-->setting.py ...

  2. python3批量修改文件后缀名

    import os # 原文件后缀名 suffix_name = '.jar.src.zip' # 新文件后缀名 nwe_suffix_name = '.jar' def foo(path1): fi ...

  3. 使用Adobe Photoshop CC 2015批量修改图片尺寸

    最近在工作中遇到一个问题,当时客户给的图片尺寸与我要求的图片不符,由于图片非常的多,如果一张一张的修改,十分的麻烦,后来经过一位同事的指点,发现Adobe Photoshop CC 2015可以实现批 ...

  4. Python 批量修改图片格式和尺寸

    公司的一个项目要求把所有4096x4096的图片全部转化成2048x2048的图片,这种批量转换图片大小的软件网上很多,我的同事原来使用的美图看看的批量转换,但是稍微有点麻烦,每次还需要指定要转换的图 ...

  5. Python批量修改图片格式和尺寸

    Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入 ...

  6. python:批量修改文件名批量修改图片尺寸

    批量修改文件名  参考博客:https://www.cnblogs.com/zf-blog/p/7880126.html 功能:批量修改文件名 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  7. node实现批量修改图片尺寸

    前言 大家在工作中肯定有没有遇到过图片尺寸和我们要求的尺寸不一致的情况吧?通常我们会在网上找一下找在线的或者下载一个小工具,再或者通过ps的批处理解决.但是,作为程序猿,当然还是通过代码来解决这种小问 ...

  8. Shell脚本批量修改图片尺寸

    #!/bin/sh function scandir(){ local cur_dir parent_dir workdir workdir=$ cd ${workdir} if [ ${workdi ...

  9. ajaxfileupload批量上传文件+图片尺寸限制

    1.首先展示ajaxfileupload代码,在这里修改为批量上传 //ajaxfileupload不展示全部代码,这是修改前与修改后代码对比,目的是上传多个文件 createUploadForm: ...

随机推荐

  1. 捕捉WPF应用程序中XAML代码解析异常

    原文:捕捉WPF应用程序中XAML代码解析异常 由于WPF应用程序中XAML代码在很多时候是运行时加载处理的.比如DynamicResource,但是在编译或者运行的过程中,编写的XAML代码很可能有 ...

  2. 什么是Hessian协议呢?

    什么是Hessian协议呢? 目前,Web服务技术是解决异构平台系统的集成及互操作问题的主流技术. 它所基于的XML已经是Internet上交换数据的实际标准,基于通用的进程间通信协议和网络传输协议屏 ...

  3. iOS 9整理

    WWDC 2015上那些酷酷的新内容(一) http://www.cocoachina.com/apple/20150611/12120.html

  4. @NOIP2018 - D2T2@ 填数游戏

    目录 @题目描述@ @题解@ @代码@ @题目描述@ 小 D 特别喜欢玩游戏.这一天,他在玩一款填数游戏. 这个填数游戏的棋盘是一个 n×m 的矩形表格.玩家需要在表格的每个格子中填入一个数字(数字 ...

  5. GP-荧光免疫分析仪SDK 协议

    近期,闲来无事,得到一款GP的poct设备研究了下,该设备型号:Getein1100 ,串口进行通信,但是串口连接有所限制,于是找到一款数传模块,将串口转网口,使用pc进行通信抓包分析,如下: 在此可 ...

  6. es6 中let与const的简析

    1.let 它的作用类似于var,用来声明变量,但是所声明的变量,只在let命令所在的代码块内有效. if(true){ ; let b = ; } document.write(a); docume ...

  7. mysql数据库之linux版本

    http://repo.mysql.com/yum/mysql-5.6-community/ 安装                                                    ...

  8. 2018-8-10-UWP-WPF-解决-xaml-设计显示异常

    title author date CreateTime categories UWP WPF 解决 xaml 设计显示异常 lindexi 2018-08-10 19:16:53 +0800 201 ...

  9. Tenka1 Programmer Beginner Contest D IntegerotS(补)

    当时没做出来,官方题解没看懂,就看别人提交的代码,刚对着别人代码调了几组数据,才发现,思路差不多,不过,原来是这样实现啊,果然我还是很菜 思路:题目要求是选取的这些数字全部进行OR运算,结果<= ...

  10. 洛谷P4136 谁能赢呢? 题解 博弈论

    题目链接:https://www.luogu.org/problem/P4136 找规律 首先这道题目我没有什么思路,所以一开始想到的是通过搜索来枚举 \(n\) 比较小的时候的情况. 所以我开搜索枚 ...