python 压缩图标大小

news/2025/11/19 10:46:51/文章来源:https://www.cnblogs.com/boye169/p/19241362

方法 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")

  

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/969802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年知名的真空加热炉用户口碑最好的厂家榜

2025年知名的真空加热炉用户口碑最好的厂家榜行业背景与市场趋势真空加热炉作为现代工业制造中的关键设备,广泛应用于航空航天、新能源、化工、国防等高端制造领域。根据中国热处理行业协会2024年发布的《中国真空热处…

PG事务id回卷问题概述

点击查看代码 说明: 0为无效事务id,1为initdb时的事务id,2为冻结事务id。 id1是旧的事务id, id2是新的事务id。PG普通的事务id是3到2^32-1这个范围,当用到2^32-1时会回卷,会重新从3开始再次循环使用。 这在还没回…

【第5章 序列、集合和字典】循环引用

循环引用的核心就是 两个或多个对象互相引用,形成闭环,导致每个对象的引用计数都无法降至 0,GC 仅靠引用计数机制无法回收它们(需依赖标记-清除机制)。 你举的例子是最典型的场景: a = [] b = [] a.append(b) #…

2025年热门的钣金加工用户口碑最好的厂家榜

2025年热门的钣金加工用户口碑最好的厂家榜行业背景与市场趋势钣金加工作为制造业的基础工艺之一,在航空航天、汽车制造、电子设备、建筑装饰等领域发挥着不可替代的作用。根据中国机械工业联合会最新发布的《2025年中…

file文件的复制拷贝

import java.io.*;public class FileCopyExample {public static void main(String[] args) {// 源文件和目标文件的路径File sourceFile = new File("源文件路径.txt");File destFile = new File("目标…

2025年靠谱的孤立导体测试仪厂家最新权威实力榜

2025年靠谱的孤立导体测试仪厂家最新权威实力榜行业背景与市场趋势随着工业4.0和智能制造战略的深入推进,静电防护在精密电子制造领域的重要性日益凸显。根据市场研究机构MarketsandMarkets最新报告显示,2024年全球静…

2025年知名的骨料散装设备实力厂家TOP推荐榜

2025年知名的骨料散装设备实力厂家TOP推荐榜行业背景与市场趋势随着全球基础设施建设的持续投入和水泥行业的转型升级,骨料散装设备市场迎来了新一轮增长机遇。据《2024-2029全球骨料散装设备行业市场调研报告》显示,…

P5256 [JSOI2013] 编程作业 个人题解

说句闲话:题解管理员大大的审核速度天下第一 题目链接 题目大意: 给定两个字符串,要求第二个字符串在第一个字符串内类似的出现过多少次 Solution: 这道题是字符串查找的强化版,其实搞懂了那道题这道题就很简单了…

2025年热门的垃圾站用户信赖度权威榜

2025年热门的垃圾站用户信赖度权威榜行业背景与市场趋势随着城市化进程加速和环保政策趋严,垃圾处理设备行业迎来了前所未有的发展机遇。据中国环境保护产业协会最新数据显示,2024年我国垃圾处理设备市场规模已达580…

2025年11月低空感知平台解决方案商推荐排行:中立评估与实用建议

随着低空经济的快速发展,低空感知平台作为支撑无人机应用与低空管理的核心技术载体,正日益受到各行业用户的重视。2025年,在政策支持与技术迭代的双重驱动下,低空感知平台市场呈现快速扩张态势,用户群体涵盖政府部…

2025年质量好的昆明泡沫包装箱行业内知名厂家排行榜

2025年质量好的昆明泡沫包装箱行业内知名厂家排行榜 行业背景与市场趋势 泡沫包装箱作为现代物流、冷链运输及农产品保鲜的重要包装材料,市场需求持续增长。据《2024年中国包装行业市场分析报告》显示,全国泡沫包装…

【第4章 面向对象】Python 的 GC(垃圾回收)机制与触发时机

Python 的 GC(垃圾回收)核心是「引用计数 + 标记-清除 + 分代回收」机制,回收时机分「自动触发」和「手动触发」,不同机制的触发时机不同,核心原则是「不影响程序运行效率,同时及时回收无用资源」: 一、核心回收…

掌握数据手册:阅读数据手册综合指南

掌握数据手册:阅读数据手册综合指南参考:https://www.circuitbread.com/tutorials/mastering-datasheets-a-comprehensive-guide-on-how-to-read-datasheets掌握数据手册:阅读数据手册综合指南 简介在电子和嵌入式系…

MATLAB自适应子空间辨识工具箱

MATLAB自适应子空间辨识工具箱,能够通过输入输出数据计算状态空间方程,并进行系统建模和预测 1. 自适应子空间辨识理论基础 classdef AdaptiveSubspaceID% 自适应子空间辨识类properties% 系统参数nx %…

MySQL高级技术体系:从复杂检索到自动化管理的实战指南

MySQL高级技术体系:从复杂检索到自动化管理的实战指南引言 在数据库应用从基础查询向复杂业务支撑演进的过程中,MySQL的高级技术成为突破性能瓶颈、保障数据安全、实现自动化运维的核心支撑。 一、高级联结:突破表关…

linux c读写文件

在 Linux 系统中,cat、echo、tee、vim、nano 等命令常用于读写文件。如果你是想了解如何在 Linux 中 C 语言中读写文件,那么可以使用标准库函数 fopen()、fread()、fwrite()、fclose() 等来实现文件的读写。 下面我将…

2025年11月deepseek排名优化评测报告:从核心优势到实战案例的深度解析

本文基于2025年中国信通院行业公开数据和权威第三方Gartner报告,结合推荐对象参考内容,从专业能力、服务品质、技术实力等维度筛选10个推荐对象,旨在提供客观参考。 评选标准:科学维度下的全面审视 本次评选绝非主…

AI模型数据安全:别让“聪明的大脑”变成安全黑洞

这几年大家都在搞AI,模型越来越大、算力越来越猛,效果也越来越好。不过越是这样,越容易让大家忽略一个问题:安全!你花费大价钱训练出来的模型,可不想被别人白嫖、逆向、偷走权重,更不想在客户现场被人轻轻松松d…

linux c语言线程

在 Linux 系统中,C 语言的线程管理通常通过 POSIX 线程(POSIX Threads,简称 pthreads)来实现。Pthreads 是 Linux 系统中标准的线程库,广泛用于多线程编程。一、C 语言线程的基本概念线程:是程序执行的独立路径,…

linux c语言程序

你好!你提到“Linux C语言程序”,这通常指的是在 Linux 系统上使用 C 语言编写并运行程序。以下是一些关于 Linux 上 C 语言编程的常见命令和脚本示例,以及一些基本概念和工具的介绍。一、C 语言开发环境搭建(Linu…