首页 > 编程语言 >python将图片按照指定尺寸比例压缩

python将图片按照指定尺寸比例压缩

时间:2024-03-04 16:22:46浏览次数:18  
标签:target python 压缩 original height width 尺寸 path image

 

 

 

 

 

 

 

 

from PIL import Image

def compress_image(input_image_path, output_image_path, target_width, target_height):
    """
    压缩图片到指定尺寸。

    :param input_image_path: 原始图片的路径
    :param output_image_path: 压缩后图片的保存路径
    :param target_width: 目标宽度
    :param target_height: 目标高度
    """
    # 打开原始图片
    original_image = Image.open(input_image_path)

    # 获取原始图片的尺寸
    original_width, original_height = original_image.size

    # 计算压缩比例
    width_ratio = target_width / original_width
    height_ratio = target_height / original_height

    # 确定使用哪个比例进行压缩,避免图片失真
    ratio = min(width_ratio, height_ratio)

    # 计算新的尺寸
    new_width = int(original_width * ratio)
    new_height = int(original_height * ratio)

    # 压缩图片
    compressed_image = original_image.resize((new_width, new_height), Image.LANCZOS)
    # Use LANCZOS or Resampling.LANCZOS instead.

    # 保存压缩后的图片
    compressed_image.save(output_image_path)


# 使用方法
input_path = '1.jpg'  # 原始图片路径
output_path = '2.jpg'  # 压缩后图片保存路径
target_width = 320  # 目标宽度
target_height = 240  # 目标高度

compress_image(input_path, output_path, target_width, target_height)
 

 

标签:target,python,压缩,original,height,width,尺寸,path,image
From: https://www.cnblogs.com/flyingsir/p/18052057

相关文章

  • Python项目 简单计算器的二次开发
    在互联网上找到一个简单计算器的项目源码点击查看代码#计算器#加法defadd(a,b):c=a+bprint(f"结果为:{c:.2f}")#减法defsub(a,b):c=a-bprint(f"结果为:{c:.2f}")#乘法defmul(a,b):c=a*bprint(f"结果为:{c:.2f}......
  • python merge函数使用
    函数语法:pd.merge(left,right,how="inner,on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=True)参数解释:left-数据顿对象。right-另一个数据顿对象on-要连接的列(名称)。必须在左侧和右侧数据框对象中找到lefton-左数据框......
  • H3C利用python开socks5
    H3C利用python开socks5#!/usr/bin/envpythonfromSocketServerimportBaseServer,ThreadingTCPServer,StreamRequestHandlerfromsocketimportsocket,AF_INET,SOCK_STREAMimportsignalimportstructimportsysimportthreadimportos'''exec(......
  • 深度学习之模型压缩(剪枝、量化)
    随着深度学习的发展,模型变得越来越复杂,随之而来的模型参数也越来越多,对于需要训练的模型硬件要求也越来越高。模型压缩技术就是为了解决模型使用成本的问题。通过提高推理速度,降低模型参数量和运算量。现在主流的模型压缩方法包含两大类:剪枝和量化。模型的剪枝是为了减少参数量和......
  • python获取服务器基本信息的脚本
     之前我发布了批量收集服务器信息脚本,本次更新优化了脚本,对脚本设置了trycatch抛出异常等等,收集信息如下:ip地址","主机名","序列号","服务器型号","系统盘数量","系统盘符","系统盘容量","系统盘分区","硬盘列表","硬盘数量","CPU核数","CP......
  • JPEG的量化参数QP如何影响压缩质量
    目录简介原理介绍简介先说结论:JPEG中的质量参数允许取1~100间的任意一个整数。质量取得越大,压缩比就越低,压缩后的图像文件占用空间就越大,压缩后的图像与原图的相似度就越高,甚至当质量取100时,JPEG就变成了无损压缩算法。原理介绍量化表是固定的,亮度(Y)和色度(Cb、Cr)矩阵需要......
  • 利用python的http.server定制自己的页面和响应
    pythonhttp.server简介pythonhttp.server是一个简单的基础的httpserver,默认查找网站根目录的index.html文件,如果没有index.html文件,则放回网站根目录文件视图这里我们想对http.server进行修改,实现我们特定的需求,如果只变化html确实能展现不能的静态页面,但是没有办法进行交互,如......
  • python -- 解决安装pyxll-jupyter时出现“TimeoutError: The read operation timed ou
     在cmd输入命令”pipinstallpyxll-jupyter“进行安装,控制台出现以下报错信息:Downloadingpyxll_jupyter-0.5.2-py3-none-any.whl(46kB)----------------------------------------46.3/46.3kB16.1kB/seta0:00:00Downloadingjupyter-1.0.0-py2.py3-none-any.whl......
  • Python-数值类型
    数值类型1.内置数值工具内置数学函数:pow:计算幂abs:计算绝对值sum:求和round:向上取整(四舍五入)max:求最大值min:求最小值>>>pow(2,4),2**4,2.0**4.0(16,16,16.0)>>>abs(-42.0),sum((1,2,3,4))(42.0,10)>>>min((1,2,3,4)),max((1,2,3,4))......
  • python hashlib模块详解
    hashlib是python自带的加密模块,提供了一些基础常用的加密方式,如:md5(),sha1(),sha224(),sha256(),sha384(),sha512(),blake2b(),blake2s() Hash对象提供了4个方法: --update(data):更新hash对象的字节数据,data是需要加密的文本内容,需要转为bytes类型,如果”abc123”.en......