图片的像素尺寸压缩,按照比例放大和缩小:
from PIL import Image
import os
pic_name = 'mountain.jpeg'
out_pic_name = 'resize_'+pic_name
def resize_image(input_image, output_image,ratio=0.6 ):
im =Image.open(input_image)
w,h = im.size
new_im = im.resize( (int(w*ratio),int(h*ratio) ),Image.LANCZOS) # LANCZOS优化图像
new_im.save(output_image,optimize=True ) # quality默认75 ,
def print_picture_info(pic_name):
im = Image.open(pic_name)
stats = os.stat(pic_name)
psize = str(int(stats.st_size/1024)) + 'KB' if stats.st_size < 1024*1024 else str(int(stats.st_size/1024/1024)+'MB')
print('图片:',pic_name,im.size,psize)
resize_image(pic_name,out_pic_name) #尺寸变换
print_picture_info(pic_name) #查看压缩前体积
print_picture_info(out_pic_name) #查看压缩后体积
图片: mountain.jpeg (800, 1422) 195KB
图片: resize_mountain.jpeg (480, 853) 84KB
mountain.jpeg
resize_mountain.jpeg
评论区