python中實(shí)現(xiàn)圖片壓縮的方法

小編給大家分享一下python中實(shí)現(xiàn)圖片壓縮的方法,相信大部分人都還不怎么了解,因此分享這邊文章給大家學(xué)習(xí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學(xué)習(xí)方法吧!

成都創(chuàng)新互聯(lián)是一家專業(yè)提供五華企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、做網(wǎng)站、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為五華眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

python實(shí)現(xiàn)圖片壓縮的方法:1、導(dǎo)入Image包;2、使用get_size(file)命令獲取圖片文件的大?。?、使用【os.path.splitext()】方式拼接文件地址;然后壓縮文件到指定大??;4、修改圖片尺寸即可。

python中實(shí)現(xiàn)圖片壓縮的方法

一、導(dǎo)入包

from PIL import Image
import os

二、獲取圖片文件的大小

def get_size(file):    
        # 獲取文件大小:KB        
       size = os.path.getsize(file)    
       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=150, step=10, quality=80):   
      """不改變圖片尺寸壓縮到指定大小        
      :param infile: 壓縮源文件        
      :param outfile: 壓縮文件保存地址        
      :param mb: 壓縮目標(biāo),KB        
      :param step: 每次調(diào)整的壓縮比率        
      :param quality: 初始?jí)嚎s比率        
      :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: 重設(shè)尺寸文件保存地址       
      :param x_s: 設(shè)置的寬度       
      :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'D:\learn\space.jpg')      
    resize_image(r'D:\learn\space.jpg')

以上是python中實(shí)現(xiàn)圖片壓縮的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞標(biāo)題:python中實(shí)現(xiàn)圖片壓縮的方法
標(biāo)題鏈接:http://muchs.cn/article26/pihojg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、做網(wǎng)站、域名注冊(cè)、網(wǎng)頁設(shè)計(jì)公司外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)