IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python 批量等比修改文件夹下图片的尺寸 -> 正文阅读

[Python知识库]python 批量等比修改文件夹下图片的尺寸

python 批量等比修改文件夹下图片的尺寸

最近在做实验时,需要批量更改文件夹中的图像尺寸,在网上查找了方法,以此记录学习的过程。



前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、分别使用OpenCV和Pillow库批量处理图像尺寸?

两个库都是图像处理中比较长用的,但是在使用时还是有一定的差异性,比如OpenCV中,读取的路径不能有中文格式,而pillow可以读取中文路径下的图片,因此保存两个代码以备后续使用。

二、使用步骤

1.Opencv

代码如下:

import cv2
import os.path
import os
import numpy as np

##长边设置为512像素,等比修改图片大小
##
def img_resize(img):
    height, width = img.shape[0], img.shape[1]
    # 设置新的图片分辨率框架,这里设置为长边像素大小为512
    width_new = 512
    height_new = 512
    # 判断图片的长宽比率
    if width / height >= width_new / height_new:
        img_new = cv2.resize(img, (width_new, int(height * width_new / width)))
    else:
        img_new = cv2.resize(img, (int(width * height_new / height), height_new))
    return img_new


def read_path(file_path,save_path):
    #遍历该目录下的所有图片文件
    for filename in os.listdir(file_path):
        # print(filename)
        img = cv2.imread(file_path+'/'+ filename)
        if img is None :
            print("图片更改完毕")
            break
        ####change to size
        image = img_resize(img)
        cv2.imwrite(save_path + filename, image)


#读取的目录
if __name__ == '__main__':
    file_path = 'E:/Images/LowResolution512/01'
    save_path = 'E:/Images/LowResolution512/01/'
    read_path(file_path,save_path)

当读取的图片路径有中文时,会有如图所示的错误。
在这里插入图片描述

2.Pillow

代码如下:

# -*- coding: utf-8 -*-
import os
import glob
from PIL import Image
import os.path

'''修改图片文件大小、file_path:文件夹路径;jpgfile:图片文件;savedir:修改后要保存的路径'''

def convertjpg(jpgfile, savedir, width_new=512, height_new=512):
    img = Image.open(jpgfile)
    width,height = img.size
    #判断长宽比
    if width / height >= width_new / height_new:
        new_img = img.resize((width_new, int(height * width_new / width)))
    else:
        new_img = img.resize((int(width * height_new / height), height_new))
    return new_img.save(os.path.join(savedir, os.path.basename(jpgfile)))
    '''查找给定路径下图片文件,并修改其大小'''


def modifyjpgSize(file, saveDir):
    for jpgfile in glob.glob(file):
       convertjpg(jpgfile, saveDir)

 # 读取目录
if __name__ == '__main__':
	img_file = r'E:\Huc\风格调色图片\中式-红\转档\*.jpg'
	saveDir = r'E:\Images\LowResolution512\05'
	modifyjpgSize(img_file, saveDir)


不使用glob库

# -*- coding: utf-8 -*-
import os
from PIL import Image
import os.path

'''修改图片文件大小、file_path:文件夹路径;jpgfile:图片文件;savedir:修改后要保存的路径'''

def convertjpg(file_path, jpgfile, savedir, width_new=512, height_new=512):
    img = Image.open(file_path + jpgfile)
    width,height = img.size
    #判断长宽比
    if width / height >= width_new / height_new:
        new_img = img.resize((width_new, int(height * width_new / width)))
    else:
        new_img = img.resize((int(width * height_new / height), height_new))
    return new_img.save(os.path.join(savedir, jpgfile))
    

'''循环遍历路径下图片文件,并修改其大小'''
def modifyjpgSize(file_path, saveDir):
    filelist = os.listdir(file_path)
    for jpgfile in filelist:
       convertjpg(file_path, jpgfile, saveDir)

#读取目录
if __name__ == '__main__':
    file_path = 'E:/Huca/风格调色图片/中式-红/转档/'
    saveDir = 'F:/ganggang/hucai/test1'
    modifyjpgSize(file_path, saveDir)

使用这种方法可以很快的更改图片尺寸。


  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:25:08  更:2021-09-23 11:26:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:41:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码