引言
图片存储格式
- 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))