婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python實現圖片批量壓縮

python實現圖片批量壓縮

熱門標簽:浙江電銷卡外呼系統好用嗎 315電話機器人廣告 房產電銷外呼系統 南京銷售外呼系統軟件 地圖標注的意義點 上海機器人外呼系統哪家好 蓋州市地圖標注 地圖標注微信發送位置不顯示 地圖制圖標注位置改變是移位嗎

項目中大量用到圖片加載,由于圖片太大,加載速度很慢,因此需要對文件進行統一壓縮

第一種

 一:安裝包

python -m pip install Pillow

二:導入包

from PIL import Image
import os

三:獲取圖片文件的大小

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

四:輸出文件夾下的文件

dir_path = r'file_path'
items = os.listdir(dir_path)

for item in items:
    # print(item)
    path = os.path.join(dir_path, item)
    print(item)

五:壓縮文件到指定大小,我期望的是150KB,step和quality可以修改到最合適的數值

def compress_image(infile, outfile=None, mb=150, step=10, quality=80):
    """不改變圖片尺寸壓縮到指定大小
    :param infile: 壓縮源文件
    :param outfile: 壓縮文件保存地址
    :param mb: 壓縮目標,KB
    :param step: 每次調整的壓縮比率
    :param quality: 初始壓縮比率
    :return: 壓縮文件地址,壓縮文件大小
    """
    if outfile is None:
        outfile = infile
    o_size = get_size(infile)
    if o_size = mb:
        im = Image.open(infile)
        im.save(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)

六:修改圖片尺寸,如果同時有修改尺寸和大小的需要,可以先修改尺寸,再壓縮大小

def resize_image(infile, outfile='', x_s=800):
    """修改圖片尺寸
    :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)

    out.save(outfile)

七:運行程序

if __name__ == '__main__':
                      # 源路徑      # 壓縮后路徑
    compress_image(r"file_path", r"E:\docs\2.JPG")
                    # 源路徑      # 壓縮后路徑
    resize_image(r"file_path", r"E:\docs\3.JPG")

第二種

import os
from PIL import Image
import threading,time

def imgToProgressive(path):
    if not path.split('.')[-1:][0] in ['png','jpg','jpeg']:  #if path isn't a image file,return
        return
    if os.path.isdir(path):
        return
##########transform img to progressive
    img = Image.open(path)
    destination = path.split('.')[:-1][0]+'_destination.'+path.split('.')[-1:][0]
    try:
        print(path.split('\\')[-1:][0],'開始轉換圖片')
        img.save(destination, "JPEG", quality=80, optimize=True, progressive=True) #轉換就是直接另存為
        print(path.split('\\')[-1:][0],'轉換完畢')
    except IOError:
        PIL.ImageFile.MAXBLOCK = img.size[0] * img.size[1]
        img.save(destination, "JPEG", quality=80, optimize=True, progressive=True)
        print(path.split('\\')[-1:][0],'轉換完畢')
    print('開始重命名文件')
    os.remove(path)
    os.rename(destination,path)

for d,_,fl in os.walk(os.getcwd()):    #遍歷目錄下所有文件
    for f in fl:
        try:
            imgToProgressive(d+'\\'+f)
        except:
            pass

以上就是python實現圖片批量壓縮的詳細內容,更多關于python 圖片壓縮的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • python 實現圖片批量壓縮的示例
  • python 無損批量壓縮圖片(支持保留圖片信息)的示例
  • python如何實現圖片壓縮
  • Python無損壓縮圖片的示例代碼
  • python3 圖片 4通道轉成3通道 1通道轉成3通道 圖片壓縮實例
  • python實現圖片壓縮代碼實例
  • python實現圖片批量壓縮程序
  • Python實現批量壓縮圖片
  • python中學習K-Means和圖片壓縮
  • python利用Guetzli批量壓縮圖片
  • 在Python中使用pngquant壓縮png圖片的教程
  • python 批量壓縮圖片的腳本

標簽:陽泉 臨汾 貴州 金華 雙鴨山 日照 赤峰 克拉瑪依

巨人網絡通訊聲明:本文標題《python實現圖片批量壓縮》,本文關鍵詞  python,實現,圖片,批量,壓縮,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python實現圖片批量壓縮》相關的同類信息!
  • 本頁收集關于python實現圖片批量壓縮的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 景东| 历史| 上高县| 巴彦县| 四子王旗| 巴中市| 绿春县| 汾西县| 新邵县| 民县| 安溪县| 金山区| 鄂托克旗| 石渠县| 正镶白旗| 金乡县| 长垣县| 丰顺县| 江西省| 民县| 沙雅县| 肃宁县| 望都县| 岳阳县| 宁南县| 建始县| 岳阳市| 讷河市| 宾阳县| 拉萨市| 龙江县| 襄汾县| 确山县| 普兰县| 平和县| 福清市| 昭觉县| 新龙县| 恩施市| 库尔勒市| 伊吾县|