引言

图片存储格式

  • JPEG:适用于需要高质量压缩的图像,如照片。JPEG格式通过有损压缩来减小文件大小。
  • PNG:适用于需要无损压缩的图像,如图标。PNG格式支持透明度,并且适合存储包含大量文字的图像。
  • BMP:适用于需要保留原始数据无损的图像,但文件大小较大。
  • TIFF:适用于专业级图像处理,支持多页、多图层和多种压缩方式。

图片存储与读取

Python中处理图像存储与读取,常用的库有Pillow和OpenCV。

使用Pillow

Pillow是一个强大的Python图像处理库,可以轻松地读取和保存图像。

from PIL import Image

# 读取图片
img = Image.open('example.jpg')

# 保存图片
img.save('example_saved.jpg', 'JPEG')

使用OpenCV

OpenCV是另一个流行的图像处理库,也支持图像的读取和保存。

import cv2

# 读取图片
img = cv2.imread('example.jpg')

# 保存图片
cv2.imwrite('example_saved.jpg', img)

高效存图技巧

图片压缩

在存储图像时,压缩是减少文件大小的重要手段。可以使用Pillow或OpenCV对图像进行压缩。

from PIL import Image

# 使用Pillow压缩图片
img = Image.open('example.jpg')
img.save('example_compressed.jpg', 'JPEG', quality=85)

# 使用OpenCV压缩图片
import cv2

img = cv2.imread('example.jpg')
img = cv2.resize(img, (0, 0), fx=0.5, fy=0.5)  # 缩放图像
cv2.imwrite('example_compressed.jpg', img)

图片格式转换

有时,需要将图像转换为不同的格式以适应不同的需求。Pillow和OpenCV都支持格式转换。

from PIL import Image

# 使用Pillow转换图片格式
img = Image.open('example.jpg')
img = img.convert('RGB')
img.save('example_converted.jpg', 'JPEG')

# 使用OpenCV转换图片格式
import cv2

img = cv2.imread('example.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
cv2.imwrite('example_converted.jpg', img)

图片批量处理

在处理大量图像时,批量处理可以大大提高效率。

import os
from PIL import Image

# 批量读取和保存图片
for filename in os.listdir('images'):
    if filename.endswith('.jpg'):
        img = Image.open(os.path.join('images', filename))
        img.save(os.path.join('images_saved', filename))

总结