尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

python 压缩图标大小

python 压缩图标大小
📅 发布时间:2026/6/20 17:36:01
python 压缩图标大小

方法 1:调整图片分辨率(缩小尺寸)

适用于图片尺寸过大(如 4000x3000 像素),通过按比例缩小宽高,直接减少像素量,大幅降低文件大小。

from PIL import Image
import osdef compress_by_resize(input_path, output_path, max_width=1200, max_height=800):"""按最大宽高比例缩小图片(不拉伸):param input_path: 输入图片路径(如"input.jpg"):param output_path: 输出图片路径(如"output.jpg"):param max_width: 最大宽度(超过则按比例缩小):param max_height: 最大高度(超过则按比例缩小)"""with Image.open(input_path) as img:# 获取原图尺寸width, height = img.sizeprint(f"原图尺寸: {width}x{height},大小: {os.path.getsize(input_path)/1024:.2f}KB")# 计算缩放比例(取宽和高中较小的比例,避免拉伸)scale = min(max_width / width, max_height / height)if scale < 1:  # 只有当原图超过最大尺寸时才缩小new_width = int(width * scale)new_height = int(height * scale)# 缩小图片(使用LANCZOS滤镜,缩小效果最优)img = img.resize((new_width, new_height), Image.Resampling.LANCZOS)# 保存压缩后的图片(默认质量,可配合质量参数进一步压缩)img.save(output_path)print(f"压缩后尺寸: {img.size[0]}x{img.size[1]},大小: {os.path.getsize(output_path)/1024:.2f}KB")# 示例:将图片缩小到最大宽1200、高800
compress_by_resize("large_image.jpg", "compressed_image.jpg", max_width=1200, max_height=800)

方法 2:降低保存质量(保持尺寸)

适用于图片尺寸合适但文件过大(如 2MB 的 1000x800 图片),通过降低 JPEG/PNG 的保存质量,在视觉效果可接受的前提下减小体积。

from PIL import Image
import osdef compress_by_quality(input_path, output_path, quality=70):"""保持尺寸,降低保存质量(适合JPEG/WEBP格式):param input_path: 输入图片路径:param output_path: 输出图片路径:param quality: 质量参数(1-95,数值越低压缩率越高,默认70)"""with Image.open(input_path) as img:# 对于PNG,可开启优化参数(仅对PNG有效)if img.format == "PNG":img.save(output_path, optimize=True, quality=quality)else:  # JPEG/WEBP等格式直接用quality参数# 注意:JPEG的quality范围是1-95,超过95会报错img.save(output_path, quality=quality, optimize=True)print(f"原图大小: {os.path.getsize(input_path)/1024:.2f}KB")print(f"压缩后大小: {os.path.getsize(output_path)/1024:.2f}KB")# 示例:JPEG图片质量从默认95降到70(体积可减少30%-50%)
compress_by_quality("high_quality.jpg", "low_quality.jpg", quality=70)

方法 3:转换为高压缩比格式(如 WebP)

WebP 格式比 JPEG 压缩率高 25%-35%,且支持透明通道,适合追求极致压缩的场景(兼容性:现代浏览器 / APP 基本支持)。

from PIL import Image
import osdef convert_to_webp(input_path, output_path, quality=70):"""转换为WebP格式(高压缩比):param input_path: 输入图片路径(支持JPG/PNG等):param output_path: 输出WebP路径(需以.webp结尾):param quality: 质量参数(1-100)"""with Image.open(input_path) as img:# 转换为WebP并保存img.save(output_path, "webp", quality=quality)print(f"原图大小: {os.path.getsize(input_path)/1024:.2f}KB")print(f"WebP大小: {os.path.getsize(output_path)/1024:.2f}KB")# 示例:将JPG转换为WebP(质量70,体积通常比JPG小30%+)
convert_to_webp("image.jpg", "image.webp", quality=70)

方法 4:综合压缩(尺寸 + 质量 + 格式)

def comprehensive_compress(input_path, output_path, max_width=1200, max_height=800, quality=70):with Image.open(input_path) as img:# 1. 缩小尺寸width, height = img.sizescale = min(max_width / width, max_height / height)if scale < 1:img = img.resize((int(width*scale), int(height*scale)), Image.Resampling.LANCZOS)# 2. 转换为WebP并降低质量img.save(output_path, "webp", quality=quality)print(f"综合压缩后大小: {os.path.getsize(output_path)/1024:.2f}KB")# 示例:综合压缩(缩小+WebP+质量70)
comprehensive_compress("original.jpg", "final_compressed.webp")

  

 

 

相关新闻

  • 2025年知名的真空加热炉用户口碑最好的厂家榜
  • 2025年知名的骨料散装设备实力厂家TOP推荐榜
  • 2025年热门的垃圾站用户信赖度权威榜

最新新闻

  • Debian 9 安装 Node.js 实战指南:nvm 方案详解
  • 2026茂名市家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!精准推荐附近专业防水团队 - 伶鹿到家
  • 调优日志 - [日期]
  • GoB插件实践手册:打造Blender与ZBrush高效协同工作流
  • 2026武汉市家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!精准推荐附近专业防水团队 - 伶鹿到家
  • Fortinet高危SQL注入漏洞深度剖析:从原理到防御实战

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号