【Python】图片处理

news/2024/11/8 20:07:55 标签: python, 开发语言

一、获取图片尺寸

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

1、Pillow

安装:

pip install Pillow

使用:

python">from PIL import Image

img = 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

使用:

python">import cv2

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

运行结果:

(300, 534, 3)

3、imageio

安装:

pip install imageio

使用:

python">import imageio

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

运行结果:

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

4、os

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

python">import os

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

运行结果:

1285917

二、修改图片名称

1、os

python">import os
 
def 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

python">import os
import shutil
 
def 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

python">from pathlib import Path
import re
 
def 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.niftyadmin.cn/n/5744381.html

相关文章

Call For Speaker! |2025中国国际音频产业大会(GAS)演讲嘉宾征集令启动!

2025中国国际音频产业大会(GAS)已定档2025年3月26-27日。 GAS 2025演讲嘉宾征集正式启动!我们将再次汇聚音频领域的专家和行业领袖,力求为与会者呈现一场内容丰富、精彩纷呈的知识盛宴。 SPRGASING FESTIVAL 如果 您在音频领域…

关于elementui el-radio 赋值问题

今天遇到这样的问题&#xff1a; 点击的时候&#xff0c;同时选中 照抄官网&#xff01; 后来发现了问题&#xff1a; 也就是说如果你的版本太低&#xff0c;就不能用value&#xff0c;而得用label&#xff0c;于是修改 <el-radio-group v-model"searchTime"&g…

【数据结构】线性表——链表

写在前面 本篇笔记记录线性表——链表的主要形式&#xff0c;虽然链表有8种形式&#xff0c;但是只要精通笔记中编写的两种&#xff0c;即可触类旁通。 文章目录 写在前面一、链表的概念及结构二、链表的分类三、无头单向非循环链表3.1、链表的实现3.1.1、链表的结构体定义3.1…

Python中的 if __name__ == ‘__main__

在Python中&#xff0c;if __name__ __main__: 这行代码有一个特定的用途和含义。为了理解它&#xff0c;我们需要先了解Python中的__name__变量以及Python脚本是如何执行的。 __name__变量 每个Python模块&#xff08;python文件&#xff09;都有一个内置的属性__name__。当…

ESLint 使用教程(一):从零配置 ESLint

前言 在现代前端开发中&#xff0c;代码质量和风格一致性是团队合作和项目维护的重要因素。而 ESLint 作为一款强大的 JavaScript 静态代码分析工具&#xff0c;能够帮助开发者发现和修复代码中的潜在问题。本文将详细介绍 ESLint 的常用规则配置&#xff0c;并结合实际应用场…

如何下载无水印的TikTok视频

随着TikTok的全球风靡&#xff0c;越来越多的人加入到这个平台&#xff0c;上传自己的创意短视频与世界分享。TikTok还成为了信息传播、娱乐消遣和营销推广的重要工具。许多人也希望能够下载喜欢的视频保存下来&#xff0c;尤其是没有水印的视频&#xff0c;方便用于二次创作或…

AI大模型引领软件开发变革:探索流程重塑、优势挑战与未来发展趋势

“AI大模型引领软件开发变革&#xff1a;探索流程重塑、优势挑战与未来发展趋势” 方向一&#xff1a;流程与模式介绍【传统软件开发 VS AI参与的软件开发】 在传统软件开发流程中&#xff0c;软件开发通常遵循一系列固定的步骤&#xff0c;包括需求分析、系统设计、编码、测…

PySide6百炼成真系列(1)

文章目录 基础框架三种最基础控件QPushButtonQLableQLineEdit 安装Pyside6 pip install pyside6 -i https://pypi.tuna.tsinghua.edu.cn/simpleZeal一款离线文档阅读器&#xff0c;可自行下载有关编程的参考文档 官网下载 具体下载问题可以查看这篇https://blog.csdn.net/qq_3…