当前位置: 首页 > news >正文

python+pillow+Image实现图片压缩到指定大小

本次使用的是python 3.6

先安装 pip install pillow

from PIL import Image
import os
img_path = r"H:\pythonworkspace\test\a.jpg"
img_path_2 = r"H:\pythonworkspace\test\test.jpg"


# 下面这种写法也可以
# img_path = "H:\\pythonworkspace\\test\\a.jpg"
# img_path_2 = "H:\\pythonworkspace\\test\\test1.jpg"

# img = Image.open(img_path)
def compress_image(input_path, output_path, max_size_kb=200):
# 打开图片
img = Image.open(input_path)
# 初始质量(1-100,越高越清晰)
quality = 85
# 循环调整质量,直到文件小于目标大小
while True:
# 保存图片(JPEG格式支持质量参数)
img.save(output_path, "JPEG", quality=quality, optimize=True)
# 检查文件大小
file_size_kb = os.path.getsize(output_path) / 1024
if file_size_kb <= max_size_kb or quality <= 10:
break
# 每次质量降低5(可按需调整步长)
quality -= 5
print(f"压缩完成!最终大小:{file_size_kb:.1f}KB,使用质量:{quality}")
# 调用函数(替换为你的图片路径)
compress_image(img_path, img_path_2, max_size_kb=185)


http://www.hskmm.com/?act=detail&tid=17426

相关文章:

  • 页面卡顿问题分析与解决方案总结复盘
  • Say 题选记(9.21 - 9.27)
  • 9月25日
  • 3D 高斯训练速度和消耗 - MKT
  • 完整教程:【PyTorch实战:文本分类】23、BERT文本分类实战指南:从原理到PyTorch落地
  • 常见进制
  • 9.25总结
  • Day08-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\array-ArrayDemo01~07
  • yolov10_float16.tflite TO yolov10_int8.tflite
  • ansible注意的和错误代码分析
  • 用 Rust 和 Tesseract OCR 识别验证码
  • 基于寄存器地址amp;标准外设库的LED流水灯
  • 用 Swift 和 Tesseract OCR 实现验证码识别
  • Rust 和 Tesseract OCR 实现验证码识别
  • AI-Powered-ToDo-List
  • Netty:完成RPC服务(实战)
  • Python 在 Web 开发中的应用与趋势
  • LLM MOE的进化之路
  • 相交链表-leetcode
  • AtCoder ARC114 总结 (A-C)
  • 告别单张保存!PPT 图片无损批量提取,这 3 种方法亲测有效!
  • ?模拟赛(2) 赛后总结
  • 日总结 8
  • 完整教程:讲一下ZooKeeper的持久化机制
  • 2025.9.25 sos dp小记
  • 英语_阅读_A farmer dream_待读
  • docker 私有仓库 harbor
  • vite+ts取别名@
  • 掌握C2重定向器:红蓝队攻防实战指南
  • 2025秋_3