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

python压缩图片的代码

从网上复制的,不知道对不对 

def compress_image(infile, outfile='', mb=1500, step=10, quality=80):
    """不改变图片尺寸压缩到指定大小
    :param infile: 压缩源文件
    :param outfile: 压缩文件保存地址
    :param mb: 压缩目标,KB
    :param step: 每次调整的压缩比率
    :param quality: 初始压缩比率
    :return: 压缩文件地址,压缩文件大小
    """
    o_size = os.path.getsize(file)/1024
    if o_size <= mb:
        return infile
    outfile = get_outfile(infile, outfile)
    while o_size > mb:
        im = Image.open(infile)
        im.save(outfile, quality=quality)
        if quality - step < 0:
            break
        quality -= step
        o_size = get_size(outfile)
    return outfile, get_size(outfile)

我自己写的,没有用循环写,但是感这样也是挺不错的。

#by czl
#date 2024年9月12日

#Imag python中用于图片处理的库
from PIL import Image

#os 通用的,基本的操作系统交互功能
import os

file_in = r"D:\桌面\test\1.png"#图片的地址,如d:\sb\1.JPG

quality = 50#压缩的百分比,50不太明显,30比较明显
path, suffix = os.path.splitext(file_in)#分割输入的路径,格式分别给path, suffix
file_out = "{}_{}{}".format(path, quality, ".jpg")#设置图片的输出路径,质量,格式
#关于转换为.jpg输出是因为png是一种无损压缩,这个库对他没有作用
#如果原本的格式就是jpg,可以这样写
# file_out = "{}_{}{}".format(path, quality, suffix)

img = Image.open(file_in)#打开图片
img.save(file_out, quality=quality)


http://www.kler.cn/news/308559.html

相关文章:

  • 《锐捷AP 胖模式配置示例》
  • UiBot教程:实现复杂流程图的高效方法
  • C++学习笔记(21)
  • solidity-21-call_contract
  • 华为SMU02B1智能通信电源监控单元模块简介
  • 基于SpringBoot+Vue的养老院管理系统
  • 在Ubuntu中编译含有JSON的文件出现报错
  • 【前后端】大文件切片上传
  • 网络安全学习(一)初识kali
  • 【JavaEE初阶】多线程(5 单例模式 \ 阻塞队列)
  • 构建基于 Feign 的微服务:从 Eureka 到负载均衡的实践 --day05
  • 微信支付开发-前端api实现
  • 大模型笔记03--快速体验dify
  • HTTP的强制缓存和协商缓存有什么区别和联系?
  • 《使用 LangChain 进行大模型应用开发》学习笔记(三)
  • 行人动作行为识别系统源码分享
  • LLamaindex基本使用
  • MYSQL数据库基础篇——DDL
  • 第7篇:【系统分析师】计算机网络
  • openwrt wsdd模块介绍
  • C++(重载)
  • Skytower
  • 第二百三十五节 JPA教程 - JPA Lob列示例
  • k8s(kubernetes)的PV / PVC / StorageClass(理论+实践)
  • 数据库的操作:SQL运算符(算法/比较/逻辑/位)
  • 【大模型专栏—进阶篇】智能对话全总结
  • 力扣100题——动态规划(二)
  • React Native防止重复点击
  • 详解 Pandas 的透视表函数
  • PHP智能化云端培训考试系统小程序源码