python图像处理——图像压缩(调整图片的存储大小)

这篇具有很好参考价值的文章主要介绍了python图像处理——图像压缩(调整图片的存储大小)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言
很多时候拍的图片都是几百KB 甚至多少M来算的,有时候证件照要求的又很小,作为一个程序员,总不能老是在网上找压缩的吧,而且又麻烦,不如自己用程序跑跑啦

压缩程序

from PIL import Image
import os

def get_size(file):
    # 获取文件大小:KB
    size = os.path.getsize(file)
    print(size)
    return size / 1024

def get_outfile(infile, outfile):
    if outfile:
        return outfile
    dir, suffix = os.path.splitext(infile)
    outfile = '{}-out{}'.format(dir, suffix)
    return outfile

def compress_image(infile, outfile='', mb=19, step=10, quality=80):
    """不改变图片尺寸压缩到指定大小
    :param infile: 压缩源文件
    :param outfile: 压缩文件保存地址
    :param mb: 压缩目标,KB
    :param step: 每次调整的压缩比率
    :param quality: 初始压缩比率
    :return: 压缩文件地址,压缩文件大小
    """
    o_size = get_size(infile)
    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)

def resize_image(infile, outfile='', x_s=1376):
    """修改图片尺寸
    :param infile: 图片源文件
    :param outfile: 重设尺寸文件保存地址
    :param x_s: 设置的宽度
    :return:
    """
    im = Image.open(infile)
    x, y = im.size
    y_s = int(y * x_s / x)
    out = im.resize((x_s, y_s), Image.ANTIALIAS)
    outfile = get_outfile(infile, outfile)
    out.save(outfile)

if __name__ == '__main__':
    compress_image(r'C:/Users/Administrator/Desktop/111.jpg')
    # resize_image(r'D:\python\test.jpg')

懒得写太详细注释了,不懂可以问噢,后续会把不懂的放上来,或者优化代码

点赞或收藏可以鼓励作者加快更新哟~文章来源地址https://www.toymoban.com/news/detail-838608.html

到了这里,关于python图像处理——图像压缩(调整图片的存储大小)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 图像处理:对比两张图片的差异

    在图像处理领域,对比两张图片的差异是一项常见的任务。Python 提供了许多强大的工具和库,使我们能够轻松地实现这一目标。本文将介绍如何使用 Python 对比两张图片,检测和可视化它们之间的差异。 在开始之前,我们首先需要定义图像差异。图像差异可以被理解为两张图

    2024年02月11日
    浏览(39)
  • 【图像处理】Python判断一张图像是否亮度过低,图片模糊判定

    比如: 直方图: 代码: 这段代码是一个用于判断图像亮度是否过暗的函数is_dark,并对输入的图像进行可视化直方图展示。 首先,通过import语句导入了cv2和matplotlib.pyplot模块,用于图像处理和可视化。 is_dark函数的作用是判断输入图像的平均亮度是否低于设定的阈值。函数接

    2024年02月16日
    浏览(55)
  • 数字图像处理--六、图像压缩

    目录 1.基本概念 1.1 图像压缩概念及其分类 1.2 数据冗余 1.3 图像信息的度量 1.4 图像保真度准则 (Fidelity Criteria) 1.5 图像压缩模型 2.图像压缩方法 2.1Huffman编码 消除编码冗余 2.2算术编码 (Arithmetic Coding) 消除编码冗余 2.3LZW编码 (Lempel-Ziv-Welch coding) 2.4位平面编码 2.5预测编码 预测

    2024年02月12日
    浏览(45)
  • 图像处理(1):用Python实现彩色图像转为灰度图像的两种方法以及批量将图片转为灰度图

    用Python实现彩色图像转为灰度图像的两种方法介绍 这篇文章给大家主要介绍使用 Python 将彩色图像转为灰度图像的两种方法,以及用 Python 批量将图片转为灰度图的方法,供大家参考: 使用Python中的cv2库,它自带彩色转灰度的方法,并且代码非常简单。 先读取一张彩色图片,然

    2024年02月11日
    浏览(50)
  • 图像处理:手写实现图像增广算法(旋转、亮度调整、裁剪与拼接)

    目录 前言 算法理论 基础实现 a.旋转 b.亮度调整 c.裁剪及拼接 随机调整参数 d.随机翻转算法 e.随机颜色明暗调整算法 f.随机裁剪算法 实验分析 本章小结 参考文章 图像增广算法在计算机视觉领域扮演着至关重要的角色。随着深度学习的兴起,大规模数据集的需求变得更加迫

    2024年02月05日
    浏览(58)
  • NEFU数字图像处理(5)图像压缩编码

    图像压缩编码的过程是在图像存储或传输之前进行,然后再由压缩后的图像数据(编码数据)恢复出原始图像或者是原始图像的近似图像· 无损压缩:在压缩过程中没有信息损失,可由编码数据完全恢复出原始图像· 有损压缩:在压缩过程中有信息损失,由编码数据恢复出的

    2024年02月05日
    浏览(146)
  • 【计算机视觉】数字图像处理(六)—— 图像压缩

    (一)、图像编码技术的研究背景 1. 信息信息传输方式发生了很大的改变 通信方式的改变 文字+语音 图像+文字+语音 通信对象的改变 人与人 人与机器,机器与机器 2. 图像传输与存储需要的信息量空间 (1)彩色视频信息 对于电视画面的分辨率640 480的彩色图像,每秒30帧,

    2024年02月05日
    浏览(86)
  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果

    目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 一、简单介绍 二、简单给视频添加水印图片效果实现原理 三、简单给视频添加水印图片效果案例实现简单步骤 四、注意事项 Python是一种跨平台的计算机程序设计语

    2024年04月25日
    浏览(74)
  • 图像处理之DCT图像压缩(基于c++ opencv实现)

    是老师布置的作业,拖到ddl才开始,opencv也才刚接触,有自己结合百度的一点理解,如有误,请谅解! 先贴一段在matlab上实现的代码,这个在网上都可以查到,就不赘述了 思路如下:      先划分处理块大小,对每个块分别进行DCT变换,再舍弃每个块中的高频系数,再进行

    2024年02月09日
    浏览(69)
  • 自动驾驶采集多视角图像处理(python实现不同文件夹下同名图片批量拼接并生成视频)

    目录 1.图像拼接 2.合成视频 2.1 cv2.videowriter_fourcc功能介绍 2.2读取图片合成视频 实现目标:将自动驾驶车6个摄像头采集到的图片,按照正确顺序拼接显示,nuScenes数据集测试如下: 图像存放文件夹目录如下: 每个目录下有相同名称,不同视角采集到的图像 。 先显示图片,代

    2024年01月18日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包