import os from PIL import Image # 对图片进行压缩,实测JPG图片,从100%到85%,体积从159K压缩到75K效果明显,但PNG图片,从739K压缩到729K,基本无变化 def compress_img(source, target): cmd = '"C:\\Program Files\\ImageMagick-7.1.1-Q16\\magick.exe" ' + source + ' -quality 85 ' + target os.system(cmd) # 获取竖版4:3的图像 def get4to3img(filename, out): # 打开图片 img = Image.open(filename) # 获取原始尺寸 original_width, original_height = img.size # 目标高宽比 target_ratio = 4 / 3 # 计算目标高度,使得高度是宽度的4/3倍 target_height = int(original_width * target_ratio) # 如果原始高度小于目标高度,需要在顶部和底部添加空间 if original_height < target_height: # 创建一个新的画布,高度为目标高度,宽度保持不变 new_img = Image.new('RGB', (original_width, target_height), 'white') # 计算附加空间的位置 pad_top = (target_height - original_height) // 2 # 将原始图片粘贴到新画布的中心 new_img.paste(img, (0, pad_top)) img = new_img new_img.close() # 如果原始高度大于目标高度,需要裁剪图片 elif original_height > target_height: # 计算裁剪的起始点 crop_top = (original_height - target_height) // 2 crop_bottom = original_height - crop_top # 裁剪图片 img = img.crop((0, crop_top, original_width, crop_bottom)) # 保存调整后的图片 img.save(out) # 关闭图片,释放内存 img.close() if __name__ == '__main__': # 图片路径 filename = r'D:\backup\021d1281-9d0b-3acf-fc8b-1b86ff6e9832.jpg' get43img(filename, r'D:\backup\021d1281-9d0b-3acf-fc8b-1b86ff6e9832_222.jpg')