一、获取图片尺寸
优点 | 缺点 | |
---|---|---|
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如何获取图片大小