Python 图片批量处理(图片批量rename,图片批量resize,图片批量split,图片批量concat)
rename.py(重命名)
import os
class BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = 'xxxxxxxx' # 表示需要命名处理的文件夹def rename(self):filelist = os.listdir(self.path) # 获取文件路径total_num = len(filelist) # 获取文件长度(个数)i = 1 # 表示文件的命名是从1开始的for item in filelist:if item.endswith('.png'): # 初始的图片的格式为jpg格式的src = os.path.join(os.path.abspath(self.path), item)dst = os.path.join(os.path.abspath(self.path), '' + str(i) + '.png')try:os.rename(src, dst)print('将 %s 重命名为: %s ...' % (src, dst))i = i + 1except:continueprint('总共重命名 %d 个文件' % total_num)if __name__ == '__main__':demo = BatchRename()demo.rename()
resize.py
import os
from PIL import Imageoriginal_images_path = r'初始的图片路径'
combined_images_path = r'图片的保存路径'#重置图片大小
resize_height = 512
resize_weidth = 512def find_images(path):result = []for filename in os.listdir(path):_, ext = os.path.splitext(filename.lower())if ext == ".jpg" or ext == ".png":result.append(os.path.join(path, filename))passpassresult.sort()return resultif __name__ == '__main__':original_images = find_images(original_images_path)for image_path in original_images:img_name = image_path[len(original_images_path):]original = Image.open(image_path)img_color = original.resize((resize_weidth, resize_height), Image.ANTIALIAS)img_color.save(combined_images_path + img_name, quality=95)print(img_name)pass
split.py (图片分割)
import cv2
import os
if __name__ == "__main__":path = "xxxxxxx" # 将此目录下的图片一分为二(左右分割,即width/2)listdir = os.listdir(path)for i in listdir:if i.split('.')[1] == "png": # the format of zed img.filepath = os.path.join(path, i)filename = i.split('.')[0]leftpath = os.path.join('xxx', filename) + ".png"#左图目录rightpath = os.path.join('xxx', filename) + ".png"#右图目录img = cv2.imread(filepath)[h, w] = img.shape[:2]print(filepath, (h, w))limg = img[:, :int(w / 2), :]rimg = img[:, int(w / 2 ):, :]cv2.imwrite(leftpath, limg)cv2.imwrite(rightpath, rimg)
concat.py(图片合并,需要确保两个文件夹目录下的图片的文件名一致)
import cv2 as cv
import numpy as np
import requests
import os
import math
import fnmatch
import shutil
import time
import datetime
import json
import redef is_file_match(filename, patterns):"""判断文件是否符合判定条件 patterns:param filename: 目标检测文件名:param patterns: 文件对比条件:return: 返回判断结果 匹配成功返回True 匹配失败返回False"""for pattern in patterns:if fnmatch.fnmatch(filename, pattern):return Truereturn Falsedef find_special_files(root, patterns=['*'], exclude_dirs=[], exclude_files=['.DS_Store']):"""寻找特定文文件夹中各个符合筛选条件文件的路径:param root: 文件路径:param patterns: 文件类别:param exclude_dirs: 排除特定文件夹:param exclude_files: 排除特定文件:return: 返回文件夹中各个符合筛选条件文件的路径(迭代器)"""for root, dirnames, filenames in os.walk(root):for filename in filenames:if filename not in exclude_files:if is_file_match(filename, patterns):yield os.path.join(root, filename)for d in exclude_dirs:if d in dirnames:dirnames.remove(d)for i in find_special_files(root=r'图片路径,因为需要合并的两个文件夹目录下的文件的文件名一致,所以此路径可以是两个文件夹中的任意一个', patterns=['*.png']):# 可以修改, os.path.basename(i) 是输入的地址name = os.path.basename(i)
#合并路径1、2目录下文件名相同的图片img1_p = os.path.join(r'路径1', name)img2_p = os.path.join(r'路径2', name)img1 = cv.imread(img1_p)img2 = cv.imread(img2_p)img = np.hstack((img1, img2))# for j in range(1,14001):path = os.path.join('保存路径', name) + ".png"cv.imwrite(path, img)
Python 图片批量处理(图片批量rename,图片批量resize,图片批量split,图片批量concat)相关推荐
- python批量读取图片并复制入word_提取出 Word 文档里的图片 并利用 python 批量转换格式...
日常工作中,你是否遇到过这样的场景,领导发来一份 Word 文档,要求你将文档中的图片存储到一个文件夹内,并且还要将图片都改成 .jpg 或者 .png,你会怎么办?你是不是一边内心崩溃,一边开始一张 ...
- Python爬虫从入门到精通——爬虫实战:爬取今日头条图片新闻
分类目录:<Python爬虫从入门到精通>总目录 本文为实战篇,需提前学习Python爬虫从入门到精通中<基本库requests的使用>和<Ajax数据爬取(一):基本原 ...
- python 怎么将数组转为列表_图片转换成pdf格式怎么操作?什么软件能将图片转为pdf?...
伙伴们好,你们知道如何把图片转为pdf格式吗?前一阵子我参加了一个家居行业大会,在会议上拍摄了不少会议照片,包括主持人讲话.嘉宾出席.观众提问.产品推广等环节都拍摄了不同的角度.拍摄好后,需要传送给写 ...
- python 最准确的图片转文字软件_图片转文字软件哪个好?5款好用的图片转文字软件推荐...
原标题:图片转文字软件哪个好?5款好用的图片转文字软件推荐 一些网友在整理资料的时候发现,所收获的资料都是图片,大部分的文字内容都在图片上,如果一个字一个字的打出来,需要花费非常多的时间,小编的建议是 ...
- python使用fpdf生成发票格式的pdf文件包含:文字、图片logo、表格、条形码等;
python使用fpdf生成发票格式的pdf文件包含:文字.图片logo.表格.条形码等: pip install fpdf #python使用fpdf生成发票格式的pdf文件包含:文字.图片logo ...
- Python tkinter的简单使用,在绘布上播放GIF和图片
Python tkinter的简单使用,在绘布上播放GIF和图片 文章目录 Python tkinter的简单使用,在绘布上播放GIF和图片 前言 一.tkinter 的简单组件以及pack(),gr ...
- python,分析网页,使用 bs4和requests 爬取网页指定图片
阅读之前先保证会使用python并且了解html前端结构 首先打开 目标网站 我们可以看到一个动漫角色的图片,现在我们要利用python程序来保存这张图片到本地. 1.右键图片 选择审查元素(有些浏览 ...
- python爬取英雄联盟所有皮肤价格表_利用Python协程来爬取LOL所有英雄的皮肤高清图片...
最近有一朋友要LOL的数据进行数据分析,叫我帮他抓一下数据.突发奇想,顺便把英雄的所有皮肤下载到本地好了. PS: 安装了LOL的伙伴图片直接在LOL文件夹里面,可以百度寻找.此贴仅分享下技术思路以及 ...
- Python 网络爬虫实战:爬取知乎回答中的全部图片
平时逛知乎的时候,经常能看到很多很棒的图片,精美的壁纸,搞笑的表情包,有趣的截图等等,总有想全部保存下来的冲动. 于是在一个小老弟的拜托之下,我把之前的知乎爬虫改造了一下,改装成了一个可以下载知乎回答 ...
- Python必应壁纸爬取系列(二):Bing唯美壁纸太多不知道选哪个?Python五行代码随机帮你挑选必应唯美屏保壁纸图片
上一篇文章我们讲述了如何爬取必应的当天壁纸,那么今天我们就来实现如何写出一个随机必应壁纸或区域的程序.有了这个程序,我们就可以按照自己的喜好添加自己喜欢的文件并且下载了 五行代码实现程序效果图 文章目 ...
最新文章
- java多线程工具类_Java多线程系列之:线程的并发工具类
- 「懒人」LeCun想让计算机自己编程?网友:还差10个 GPT-3
- POJ2976——Dropping tests(0/1分数规划)
- 软件界面中英文对照_再也不用翻译软件了,弱电行业术语大全及中英文对照表来了~...
- c# hash 泛型_C# 泛型Dictionary (Hashtable)
- 小型服务器的操作系统,小型机服务器的操作系统
- case study
- HDU6038 - Function
- jstack 脚本 自动日志_GitLab从安装到全自动化备份一条龙
- evalin matlab,求解MATLAB问题
- Pytest-ordering自定义用例执行顺序
- 关于AM335X移植SDIO WIFI的简易教程(转)
- visual设计的界面发布到iis上显示不一样_享声 SOUNDAWARE 发布可“全民HIFI“的网播一体机 A1...
- System memory,AGP memory和video memory
- java单例模式实例_Java设计模式之单例模式 通俗易懂 超详细 【内含案例】
- 工作中常用的linux命令,Linux工作中常用到的一些命令(持续更新)常用的
- HDU4607 Park Visit(解法二)【废除!!!】
- PHP中钩子函数的实现与认识
- 每日英语阅读(五十四)
- Spring5开发新功能