背景
- png2jpg:读取 png 格式的图片,转成 PIL 读取的格式,最终通过 PIL 存储成 jpg 格式。
- png2jpg并压缩(目的是减小占用空间):读取 png 格式,通过设置图像质量和 dpi 对图像进行压缩,直至符合要求。
png2jpg
import cv2, os
from PIL import Image
img_folder_path = './3_7_gwyndkhdjb'
img_folder_path_save = img_folder_path + '_jpg'
os.makedirs(img_folder_path_save, exist_ok=True)
for img_name in os.listdir(img_folder_path):
if img_name.endswith('.png'):
img_path = os.path.join(img_folder_path, img_name)
print(img_path)
img_cv = cv2.imread(img_path)
img_rgb = cv2.cvtColor(img_cv, cv2.COLOR_BGR2RGB)
img_pil = Image.fromarray(img_rgb)
img_path_save = os.path.join(img_folder_path_save, img_name.split('.')[0] + '.jpg')
img_pil.save(img_path_save, dpi=(300, 300))
png2jpg 并压缩
import os
from PIL import Image
image = Image.open('./image/1.png')
img_path_save = './image/result.jpg'
if image.mode == 'RGBA':
image = image.convert('RGB')
quality = 97
dpi = (500, 500)
image.save(img_path_save, format='JPEG', quality=quality, dpi=dpi)
file_size_kb = os.path.getsize(img_path_save) / 1024
print(f'最终文件大小: {file_size_kb:.2f} KB, 质量设定: {quality}, DPI: {dpi}')
运行结果

END