Python3 批量修改JPG图片尺寸
功能
- 批量修改当前文件夹下的jpg图片到设置的尺寸
- 将修改后的图片移动到
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图片尺寸的更多相关文章
- Python3批量修改指定目录下面的图片/文件名
需求: 从网上下载的N张.png图片保存到image目录中,将下载下来的图片全部重命名test1.png/test2.png... 实现代码: 目录结构: config-->setting.py ...
- python3批量修改文件后缀名
import os # 原文件后缀名 suffix_name = '.jar.src.zip' # 新文件后缀名 nwe_suffix_name = '.jar' def foo(path1): fi ...
- 使用Adobe Photoshop CC 2015批量修改图片尺寸
最近在工作中遇到一个问题,当时客户给的图片尺寸与我要求的图片不符,由于图片非常的多,如果一张一张的修改,十分的麻烦,后来经过一位同事的指点,发现Adobe Photoshop CC 2015可以实现批 ...
- Python 批量修改图片格式和尺寸
公司的一个项目要求把所有4096x4096的图片全部转化成2048x2048的图片,这种批量转换图片大小的软件网上很多,我的同事原来使用的美图看看的批量转换,但是稍微有点麻烦,每次还需要指定要转换的图 ...
- Python批量修改图片格式和尺寸
Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入 ...
- python:批量修改文件名批量修改图片尺寸
批量修改文件名 参考博客:https://www.cnblogs.com/zf-blog/p/7880126.html 功能:批量修改文件名 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- node实现批量修改图片尺寸
前言 大家在工作中肯定有没有遇到过图片尺寸和我们要求的尺寸不一致的情况吧?通常我们会在网上找一下找在线的或者下载一个小工具,再或者通过ps的批处理解决.但是,作为程序猿,当然还是通过代码来解决这种小问 ...
- Shell脚本批量修改图片尺寸
#!/bin/sh function scandir(){ local cur_dir parent_dir workdir workdir=$ cd ${workdir} if [ ${workdi ...
- ajaxfileupload批量上传文件+图片尺寸限制
1.首先展示ajaxfileupload代码,在这里修改为批量上传 //ajaxfileupload不展示全部代码,这是修改前与修改后代码对比,目的是上传多个文件 createUploadForm: ...
随机推荐
- 原生js复习1.0
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 实现一个简易的promise
//promise里面只有三个状态,且三个状态的转换形式有两种 //由pending转换为fulfilled,由pending转换为rejected //Promise的构造函数参数是一个函数,函数的 ...
- SGU 107 987654321 problem【找规律】
题目链接: http://acm.sgu.ru/problem.php?contest=0&problem=107 题意: 平方后几位为987654321的n位数有多少个 分析: 虽然说是水题 ...
- Python 常量
- 云原生生态周报 Vol. 8 | Gartner 发布云原生趋势
业界要闻 Gartner 发布云原生基础设施未来的八大趋势:权威分析机构 Gartner 在对 2020 年技术趋势的展望当中指出:“预计2020年所有领先的容器管理软件均内置服务融合技术,到2022 ...
- Android SwipeActionAdapter结合Pinnedheaderlistview实现复杂列表的左右滑动操作
在上一篇博客<Android 使用SwipeActionAdapter开源库实现简单列表的左右滑动操作>里,已经介绍了利用SwipeActionAdapter来左右滑动操作列表: 然,有时 ...
- 传说中Python最难理解的点|看这完篇就够了(装饰器)
https://mp.weixin.qq.com/s/B6pEZLrayqzJfMtLqiAfpQ 1.什么是装饰器 网上有人是这么评价装饰器的,我觉得写的很有趣,比喻的很形象 每个人都有的内裤主要是 ...
- C# 星期相关代码实例
本文为引用文章 仅作整理自用 原文链接: https://www.cnblogs.com/yxyl/p/9992841.html @网吧看压力大 从周一到周日的顺序,获取排序数值: int i = D ...
- POJ2752 Seek the Name, Seek the Fame 题解 KMP算法
题目链接:http://poj.org/problem?id=2752 题目大意:给你一个字符串 \(S\) ,如果它的一个前缀同时也是它的后缀,则输出这个前缀(后缀)的长度. 题目分析:next函数 ...
- Flex AIR应用的启动闪屏(必须)
说明: 一款移动应用,它必须具有启动屏幕,这点可以从我们常见的手机应用观察知道(如,你启动一个QQ,开始大约10秒钟会停留在一个界面上,之后才跳转到登陆或者是主界面). 在air移动应用中,如果不添加 ...