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: ...
随机推荐
- swap function & copy-and-swap idiom
在C++中,众所周知在一个资源管理类(例如含有指向堆内存的指针)中需要重新定义拷贝构造函数.赋值运算符以及析构函数(Big Three),在新标准下还可能需要定义移动构造函数和移动赋值运算符(Big ...
- UVa-10986_Sending email (向前星+Dijkstra)
题意:给你点.边,求起点到终点的最短距离. 题解:由于题目的数据量特别大,所以需要用邻接表来存边,之后对Dijkstra算法稍微魔改一下就可以了,本来以为会超时,做好了打堆优化的准备,结果卡时间过了, ...
- Pytorch使用tensorboardX可视化。超详细!!!
tensorboard --logdir runs 改为 tensorboard --logdir=D:\model\tensorboard\runs 重点 在网上看了很多方法后发现将原本链接中的计算 ...
- PyODPS DataFrame 处理笛卡尔积的几种方式
PyODPS 提供了 DataFrame API 来用类似 pandas 的接口进行大规模数据分析以及预处理,本文主要介绍如何使用 PyODPS 执行笛卡尔积的操作. 笛卡尔积最常出现的场景是两两之间 ...
- Transformer的PyTorch实现
Google 2017年的论文 Attention is all you need 阐释了什么叫做大道至简!该论文提出了Transformer模型,完全基于Attention mechanism,抛弃 ...
- thinkphp 本地配置手机移动端,在pc端访问手机端
- iPython的安装过程
http://blog.csdn.net/u012587561/article/details/50900781 python2.7.10 amd64 win10 x64 1. 安装setuptool ...
- 2011-04-21 运程连Oracle的方法
oracle无法远程连接重要原因,即使防火墙开放1521端口, 但是返回包可能是随机端口,所以仍有可能被防火墙阻止. 解决方法: 在注册表中增加一个字符串值如下.可解决 花费两天找到的方法 [HKEY ...
- MySQL高级配置
参考文章:http://www.jb51.net/article/47419.htm https://blog.csdn.net/waneto2008/article/details/52502208 ...
- UVA 11922 Permutation Transformer —— splay伸展树
题意:根据m条指令改变排列1 2 3 4 … n ,每条指令(a, b)表示取出第a~b个元素,反转后添加到排列尾部 分析:用一个可分裂合并的序列来表示整个序列,截取一段可以用两次分裂一次合并实现,粘 ...