当前位置: 首页 > news >正文

【Python】图片处理

一、获取图片尺寸

优点缺点
Pillow功能丰富,支持多种图像处理操作。
使用简单,适合快速原型开发。
对于处理大型图像或批量图像时,性能可能不如OpenCV。
OpenCV性能强大,适合处理大型图像和视频处理。
提供了丰富的计算机视觉算法。
相对来说,使用起来可能比Pillow复杂一些。
imageio支持多种图像格式,使用方便。功能相对较少,主要用于图像的读取和写入。
os无需安装额外的库,使用简单。不能直接获取图片的宽度和高度,只能获取文件大小。

1、Pillow

安装:

pip install Pillow

使用:

from PIL import Imageimg = Image.open('C:/Users/admin/Pictures/demo.jpg')
print(img.size, img.width, img.height, img.format)

运行结果:

(534, 300)
534 300 JPEG

2、OpenCV

安装:

pip install opencv-python

使用:

import cv2image = cv2.imread('example.jpg')
print(image.shape)

运行结果:

(300, 534, 3)

3、imageio

安装:

pip install imageio

使用:

import imageioimage = imageio.imread('example.jpg')
height, width = image.shape[:2]
print(f"图片宽度: {width}, 图片高度: {height}")

运行结果:

图片宽度:1024, 图片高度:1024

4、os

使用os库获取图片文件的大小(以字节为单位)

import osfile_size = os.path.getsize('example.jpg')
print(file_size)

运行结果:

1285917

二、修改图片名称

1、os

import osdef rename_images(folder_path, prefix):files = os.listdir(folder_path)for i, file in enumerate(files):if file.endswith(".jpg") or file.endswith(".png"):new_name = f"{prefix}_{i+1}.jpg"os.rename(os.path.join(folder_path, file), os.path.join(folder_path, new_name))folder_path = "/path/to/folder"  # 图片所在文件夹路径
prefix = "new_name"  # 新的文件名前缀
rename_images(folder_path, prefix)

2、shutil

import os
import shutildef rename_images(folder_path, prefix):files = os.listdir(folder_path)for i, file in enumerate(files):if file.endswith(".jpg") or file.endswith(".png"):new_name = f"{prefix}_{i+1}.jpg"shutil.move(os.path.join(folder_path, file), os.path.join(folder_path, new_name))folder_path = "/path/to/folder"  # 图片所在文件夹路径
prefix = "new_name"  # 新的文件名前缀
rename_images(folder_path, prefix)

3、pathlib

from pathlib import Path
import redef rename_images(folder_path, prefix):pattern = re.compile(r"\.\w+$")  # 正则表达式匹配文件扩展名folder_path = Path(folder_path)for i, file in enumerate(folder_path.glob("*")):if file.is_file() and pattern.search(file.name):new_name = pattern.sub(f"_{i+1}.jpg", file.name)new_path = folder_path.joinpath(new_name)file.rename(new_path)folder_path = "/path/to/folder"  # 图片所在文件夹路径
prefix = "new_name"  # 新的文件名前缀
rename_images(folder_path, prefix)

三、参考链接

  • python如何获取图片大小
http://www.lryc.cn/news/479698.html

相关文章:

  • 面相小白的php反序列化漏洞原理剖析
  • 文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
  • 科研绘图系列:R语言组合堆积图(stacked plot)
  • YOLOv11及自研模型更新汇总
  • 系统安全架构
  • Qt(程序打包)
  • 牛客sql题目总结(1)
  • RocketMQ 自动注入消费者
  • RibbitMQ-安装
  • 非计算机背景但是想从事医学AI研究,需要掌握的编程语言|个人观点·24-11-08
  • 内置函数【MySQL】
  • RNA-seq 差异分析的点点滴滴(1)
  • Windows10/11开启卓越性能模式 windows开启卓越性能电源模式 工作电脑开启卓越性能模式 电脑开启性能模式
  • day20-21之间的项目实战:若依ruoyi开发(可以跳过)
  • 双向链表及如何使用GLib的GList实现双向链表
  • ProCalun卡伦纯天然万用膏,全家的皮肤健康守护
  • FastAPI全方位分析:优劣尽显
  • 【rust】rust基础代码案例
  • 【深度学习】PromptFix:多功能AI修图
  • 2024最新AI绘画系统软件(Midjourney)+GPT4文档分析总结,多模态识图理解,AI文生图/图生图/混图生图(图像混合)
  • 【信号处理】基于联合图像表示的深度学习卷积神经网络
  • C#基础-区分数组与集合
  • ORACLE 19C 安装数据库补丁的详细过程
  • tensorflow案例5--基于改进VGG16模型的马铃薯识别,准确率提升0.6%,计算量降低78.07%
  • 代码中的设计模式-策略模式
  • 后端Node学习项目-项目基础搭建
  • Python | Leetcode Python题解之第538题把二叉搜索树转换为累加树
  • 【ZeroMQ 】ZeroMQ中inproc优势有哪些?与其它传输协议有哪些不同?
  • spark的学习-03
  • 一文了解Android SELinux