創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!
小編給大家分享一下python中實(shí)現(xiàn)圖片壓縮的方法,相信大部分人都還不怎么了解,因此分享這邊文章給大家學(xué)習(xí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學(xué)習(xí)方法吧!
python實(shí)現(xiàn)圖片壓縮的方法:1、導(dǎo)入Image包;2、使用get_size(file)命令獲取圖片文件的大小;3、使用【os.path.splitext()】方式拼接文件地址;然后壓縮文件到指定大小;4、修改圖片尺寸即可。
一、導(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)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
分享文章:python中實(shí)現(xiàn)圖片壓縮的方法-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://jinyejixie.com/article42/dpdshc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、建站公司、定制網(wǎng)站、ChatGPT、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容