python实现图片压缩

首先

pip install Pillow

compression_level参数,该参数的范围从0到100,其中0表示最小尺寸(最高压缩),100表示最大质量(最小压缩)。这个脚本将尝试在保持图片可识别性的同时,尽可能地减小图片的大小。

from PIL import Image
import osdef compress_images(source_folder, target_folder, max_size=(1024, 1024), compression_level=50):"""压缩指定文件夹中的所有图片,并保存到目标文件夹,保持原有尺寸比例。:param source_folder: 源文件夹路径:param target_folder: 目标文件夹路径:param max_size: 图片的最大尺寸,元组形式 (宽度, 高度):param compression_level: 压缩等级,0-100,等级越低,压缩后的图片越小"""# 确保目标文件夹存在if not os.path.exists(target_folder):os.makedirs(target_folder)# 遍历源文件夹中的所有文件for filename in os.listdir(source_folder):# 检查文件扩展名是否为图片格式if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):source_image_path = os.path.join(source_folder, filename)target_image_path = os.path.join(target_folder, filename)# 打开图片with Image.open(source_image_path) as img:# 保持图片的原始尺寸比例img.thumbnail(max_size, Image.Resampling.LANCZOS)# 根据压缩等级调整JPEG质量(PNG不受影响)if img.format == 'JPEG':quality = max(1, int(100 - compression_level * 2))  # JPEG质量范围1-95img.save(target_image_path, quality=quality, optimize=True)else:# 对于PNG,我们尝试使用DEFLATE算法进行压缩img.save(target_image_path, 'PNG', compress_level=compression_level, optimize=True)print(f"Compressed {filename} with level {compression_level} and saved to {target_image_path}")# 指定源文件夹和目标文件夹
source_folder = 'path/to/source/folder'
target_folder = 'path/to/target/folder'# 调用函数,这里我们设置压缩等级为0以获得最小尺寸
compress_images(source_folder, target_folder, compression_level=0)

compression_level为0时,质量设置为1(最小值),当compression_level为100时,质量设置为95(最大值)。对于PNG图片,我们使用了compress_level参数,它是PNG的压缩级别,范围从0(无压缩)到9(最大压缩)。

点击链接中的链接,欢迎一起来交流学习

互联网搞钱-CSDN博客文章浏览阅读1k次。从事互联网行业近10余年,现在成为了自由职业者,全职投入互联网,主要从事互联网副业、信息差、创业、赚钱思路等方面研究、实战和经验分享。https://blog.csdn.net/qq_30776829/article/details/136265463

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

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

相关文章

Java_16 移动零

移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0]…

uniapp对接极光推送(国内版以及海外版)

勾选push,但不要勾选unipush 国内版 网址:极光推送-快速集成消息推送功能,提升APP运营效率 (jiguang.cn) 进入后台,并选择对应应用开始配置 配置安卓包名 以及ios推送证书,是否将生产证书用于开发环境选择是 ios推送证书…

如何将python项目转变成deb安装包

先将python项目转变成可执行文件 1. 首先确保你的python项目可以正常执行 2.安装pyinstaller模块&#xff0c;pip install pyinstaller -i Simple Index 3.确定好你的项目的文件入口&#xff0c;也就是运行的文件.py 4. 开始打包成单文件&#xff0c;pyinstaller -F <第…

Maya 2024 for Mac/Win:重塑三维创意世界的利器

在数字化浪潮汹涌的当下&#xff0c;三维图形软件早已成为创意产业不可或缺的重要工具。而在这其中&#xff0c;Maya 2024以其卓越的性能和丰富的功能&#xff0c;赢得了无数设计师的青睐。无论是Mac还是Win平台&#xff0c;Maya 2024都能为您的三维创作提供强大的支持。 Maya…

数据结构-----栈、顺序栈、链栈

在软件应用中&#xff0c;栈这种后进先出数据结构的应用是非常普遍的。比如用浏览器上网时&#xff0c;不管什么浏览器都有一个“后退”键&#xff0c;你点击后可以按访问顺序的逆序加载浏览过的网页。即使从一个网页开始&#xff0c;连续点了几十个链接跳转&#xff0c;你点“…

PyTorch-----torch.nn.Softmax()函数

Softmax原理 Softmax 函数是一种常用的激活函数&#xff0c;通常用于多分类问题中。它将一个含有多个实数值的向量&#xff08;通常称为 logits&#xff09;转换成一个概率分布&#xff0c;使得每个元素都在 (0, 1) 区间内&#xff0c;并且所有元素的和为 1。 假设我们有一个实…

逻辑分析仪怎么添加自己需要的协议libsigrokdecode

Protocol decoder HOWTO Protocol decoder API 串口示例 逻辑分析仪 怎么添加自己需要的协议&#xff1f; 背景 使用逻辑分析仪时候&#xff0c;发现可以自定义协议&#xff0c;使用的 libsigrokdecode &#xff0c;那事情就简单了 步骤 路径 找到安装路径的decoders 在此文…

广发期货:从灾备中心、信创云到主中心,超融合支撑云化与国产化双转型

案例亮点 超过 30 节点承载灾备中心、信创云及主中心的 60% 以上业务系统。超融合信创资源池稳定运行超 1 年&#xff0c;承载 80% 以上的信创系统&#xff0c;顺利通过信创验收。引入超融合架构后&#xff0c;业务在 1 周内快速上线&#xff0c;稳定运行 3 年&#xff1b;减少…

Flexcel笔记

1.引入: uses {$IFDEF LINUX}SKIA.FlexCel.Core{$ELSE}{$IFDEF FIREMONKEY} FMX.FlexCel.Core{$ELSE}VCL.FlexCel.Core{$ENDIF}{$ENDIF} 2.核心单元介绍 FlexCel. XlsAdapter&#xff1a;这是FlexCel xls/x引擎。如果您正在处理xls或xlsx文件&#xff0c;则需要使用此单元…

蓝桥杯-单片机基础9——基于2023年官方onewire通信代码外设讲解(温度传感器DS18B20)

蓝桥杯单片机组备赛指南请查看这篇文章&#xff1a;戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写&#xff0c;代码可直接在比赛开发板上使用。 型号&#xff1a;国信天长4T开发板&#xff08;绿板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K6…

第2章. 揭秘指令提示技术,轻松驾驭Chatgpt

Chatgpt的指令提示 想获取Chatgpt的高质文本&#xff1f;试试指令提示吧&#xff01;为模型指明方向&#xff0c;它就能产出我们心仪的内容。 指令提示技术&#xff0c;就是给Chatgpt一个明确的指引。想让它输出什么&#xff0c;只需简单告诉它。 提示公式&#xff1a;按这个…

弹性伸缩 AS

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…