python不改变图片尺寸压缩到指定大小

import base64
import io
import os
from PIL import Image
from PIL import ImageFile# 压缩图片文件
def compress_image(outfile, mb=190, quality=85, k=0.9):"""不改变图片尺寸压缩到指定大小:param outfile: 压缩文件保存地址:param mb: 压缩目标,KB:param step: 每次调整的压缩比率:param quality: 初始压缩比率:return: 压缩文件地址,压缩文件大小"""o_size = os.path.getsize(outfile) // 1024print(o_size, mb)if o_size <= mb:return outfileImageFile.LOAD_TRUNCATED_IMAGES = Truewhile o_size > mb:im = Image.open(outfile)x, y = im.sizeout = im.resize((int(x*k), int(y*k)), Image.ANTIALIAS)try:out.save(outfile, quality=quality)except Exception as e:print(e)breako_size = os.path.getsize(outfile) // 1024return outfile# 压缩base64的图片
def compress_image_bs4(b64, mb=190, k=0.9):"""不改变图片尺寸压缩到指定大小:param outfile: 压缩文件保存地址:param mb: 压缩目标,KB:param step: 每次调整的压缩比率:param quality: 初始压缩比率:return: 压缩文件地址,压缩文件大小"""f = base64.b64decode(b64)with io.BytesIO(f) as im:o_size = len(im.getvalue()) // 1024if o_size <= mb:return b64im_out = imwhile o_size > mb:img = Image.open(im_out)x, y = img.sizeout = img.resize((int(x*k), int(y*k)), Image.ANTIALIAS)im_out.close()im_out = io.BytesIO()out.save(im_out, 'jpeg')o_size = len(im_out.getvalue()) // 1024b64 = base64.b64encode(im_out.getvalue())im_out.close()return str(b64, encoding='utf8')

python不改变图片尺寸压缩到指定大小 1相关推荐

  1. python不改变图片尺寸压缩到指定大小

    python不改变图片尺寸压缩到指定大小 import base64 import io import os from PIL import Image from PIL import ImageFi ...

  2. python更改图片存储大小_python不改变图片尺寸压缩到指定大小

    python不改变图片尺寸压缩到指定大小 import base64 import io import os from PIL import Image from PIL import ImageFi ...

  3. python批量压缩图片_Python图片批量压缩到指定大小并将JPG转为PNG格式

    背景: 待压缩的图片大小有几十KB到近10M大小不等,且绝大部分图片为JPG格式.这些待压缩图片放在picture文件夹下 以及picture文件夹下的子文件夹中 现需要将picture文件夹下这些图 ...

  4. Python图片批量压缩到指定大小并将JPG转为PNG格式

    背景: 待压缩的图片大小有几十KB到近10M大小不等,且绝大部分图片为JPG格式.这些待压缩图片放在picture文件夹下 以及picture文件夹下的子文件夹中 现需要将picture文件夹下这些图 ...

  5. 图片怎么压缩成指定大小?如何将照片变成规定大小?

    如何压缩png图片200k以下?推荐使用压缩图的图片压缩成指定大小(图片压缩到指定大小 图片压缩大小至指定kb以下-压缩图)功能来压缩png图片到想要的大小,下面是具体步骤. 1.使用浏览器打开压缩图 ...

  6. 照片怎么改大小300k?图片怎么压缩到指定大小?

    我们在上传照片的时候经常会提示照片大小超过上限,需要将照片压缩到300k以下,那么照片怎么改大小300k呢?这里推荐大家使用压缩图片的图片压缩指定大小(图片压缩到指定大小 图片压缩大小至指定kb以下- ...

  7. python批量改变图片尺寸

    前言   我们常常需要批量改变图片的尺寸,使用下面的代码可以根据需要批量进行修改,只需要替换文件路径和想修改的尺寸即可.   这里使用resize改变尺寸是利用pillow包中Image类中的resi ...

  8. python --压缩图片不改变图片尺寸

    方法1 from PIL import Image import osdef compress_image(infile, outfile, quality=50):""" ...

  9. iOS图片压缩成指定大小

    在iOS中涉及一些图片显示和处理问题,在实际中碰到过修改账户头像时上传头像出现 error = Error Domain=com.alamofire.error.serialization.respo ...

最新文章

  1. C 指针的有意思的描述
  2. 最小生成树算法详解(prim+kruskal)
  3. JetBrains CLion C++ IDE连接wsl2(Ubuntu)时,报错“Unable to establish SSL connection“解决方案
  4. mac环境下分别用vim和Xcode运行C++(hello word)程序
  5. InstallShield LaunchAppAndWait运行另一个程序并等待该程序终止。
  6. 云开发0基础训练营第二期热力来袭!
  7. *【HDU - 2819】Swap(二分图匹配,输出路径)(待证明:是否是最少交换次数?)
  8. notepad文件太大打不开怎么办_U盘数据如何恢复?U盘打不开怎么办?
  9. Mysql:执行source sql脚本时,出现:error 2
  10. PHP正则表达式转义符对照
  11. Blender物理引擎
  12. 地表反射率、温度以及植被指数的计算
  13. 阿里云短信接口写法参照实例
  14. js保留2位小数(且四舍五入)
  15. 揪出手机耗电元凶——高德地图缓存数据
  16. 计算机科学与技术影响因子排名,173个学科SCI期刊影响因子排名
  17. 人体脂肪的形成及如何消耗
  18. mca允许安装任何来源
  19. SP8266搭建简易web
  20. 鳄鱼法则(特转此贴,给不会止损的朋友们)

热门文章

  1. RestTemplate发送form-data请求上传rul资源文件及对象参数
  2. vnc远程桌面,六款好用又免费的vnc远程桌面软件
  3. 是不是网站服务器限速最高11,限制网速多少合适(100m访客限速多少kb合适)
  4. MindSpore 使用 GradCAM
  5. 魔兽世界的小宠物(二版)
  6. TN3399将固态硬盘设置成根目录
  7. 叶黄素能护眼和预防近视?有必要给孩子买叶黄素补充剂吗?
  8. 美工给的html怎么加数据,如何快速完成美工HTML和DRUPAL数据的整合?
  9. bootstrap 兼容ie8浏览器
  10. python基于django的同学校友录网站