日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

10 行 Python 代码,批量压缩图片 500 张,简直太强大了

發(fā)布時(shí)間:2025/3/20 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10 行 Python 代码,批量压缩图片 500 张,简直太强大了 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這幾天,我在用 Github page + hexo 搭建個(gè)人網(wǎng)站,為了延續(xù)風(fēng)格,就想把配圖與文章一起遷移過(guò)去。這時(shí)候就出現(xiàn)了一個(gè)難題:我所用的圖片都是高清大圖,放到網(wǎng)站上會(huì)嚴(yán)重拖慢加載速度。因此,需要先把圖片壓縮,再上傳。

我把需求概括如下:

  • 批量壓縮圖片,現(xiàn)有約 200 張,后會(huì)再增

  • 是壓縮,不是切割截取,不改變圖片尺寸

  • 原圖片大部分是 10M - 30M,目標(biāo)是壓縮成 1M 以?xún)?nèi),越小越好

按照這幾條線索,我搜索“批量壓縮圖片”、“圖片壓縮工具“、”批量處理圖片“……

開(kāi)始的想法是找輕量級(jí)的圖片壓縮工具,簡(jiǎn)單處理一下就好。然而不知是搜索的姿勢(shì)不對(duì),還是篩選過(guò)濾信息的姿勢(shì)不對(duì),結(jié)果都差強(qiáng)人意。

查找到的工具有本地與在線兩類(lèi),可試驗(yàn)后都不太理想:有的軟件下載后才發(fā)現(xiàn)是付費(fèi)的,有的在使用時(shí)直接導(dǎo)致程序卡死,有的壓縮率不夠需要多次壓縮,有的要求原始圖片大小不能超過(guò) 5 M,有的要求批量處理數(shù)量不超過(guò) 20 張,有的不支持批量壓縮……群內(nèi)小伙伴還幫忙推薦了“PS+批處理”、acdsee、甚至手機(jī)應(yīng)用 snapseed,都不合我意。

花了不少時(shí)間后,偶然看到有文章寫(xiě)用 Python 來(lái)壓縮圖片。一文驚醒夢(mèng)中人,我怎么沒(méi)想到呢?

先看看別人是怎么做的。這篇《如何用Python智能批量壓縮圖片?》(https://zhuanlan.zhihu.com/p/32246003)文章中介紹了使用 PIL 庫(kù)的 Image 模塊來(lái)壓縮圖片的方法,主要通過(guò)調(diào)節(jié)圖片長(zhǎng)寬數(shù)值的方式。

PIL 是個(gè)強(qiáng)大的圖片處理庫(kù),但只支持 Python 2,而且早已停止更新。有開(kāi)發(fā)者在它基礎(chǔ)上改良并維護(hù)了 Pillow,支持 Python 3。之前有所耳聞,沒(méi)用過(guò)。于是貓哥查了幾篇教程和文檔。讀后發(fā)現(xiàn)它壓縮圖片的方法主要是等比例縮放、裁剪以及改變格式等,并非我所要的。

還看到一篇《如何在無(wú)損的情況下讓圖片變的更小》(https://juejin.im/post/5959fbe0f265da6c2518d740)文章,它介紹了 Yelp(美國(guó)最大點(diǎn)評(píng)網(wǎng)站)的三種優(yōu)化圖片的策略:Pillow、動(dòng)態(tài)調(diào)優(yōu)、更換編碼器。有些方法很高大上,應(yīng)該是業(yè)界先進(jìn)經(jīng)驗(yàn)了,但它希望保證圖片無(wú)損,所有方法加起來(lái)才可以使圖片大小平均減少 30%,因此并不滿(mǎn)足我的要求。另外它引申介紹了幾種方法,可是需要花費(fèi)時(shí)間去研究,我也放棄了。

最后,終于找到了一種非常便捷,又十分滿(mǎn)足的方案,下面開(kāi)始進(jìn)入正題了。(不要嫌我啰嗦,探索的過(guò)程也很有趣)(噓,實(shí)際上是因?yàn)橄旅嬉榻B的方法太簡(jiǎn)單,才區(qū)區(qū)幾行代碼,我實(shí)在忍不住強(qiáng)行加戲……)
-------------------------------------------------------小心翼翼的分割線------------------------------------------------------------
Tinypng 網(wǎng)站提供在線圖片壓縮服務(wù),是所有圖片壓縮工具中最好用的之一,但有限制:批量最多處理 20 張,且每張大小不允許超過(guò) 5M。

這個(gè)網(wǎng)站非常良心,開(kāi)放了免費(fèi)的 API ,API 取消了每張大小的限制,只限定每個(gè)月處理 500 張圖片。這對(duì)我來(lái)說(shuō),已經(jīng)足足有余了。

下面介紹怎么使用它。第一步是在它網(wǎng)站上注冊(cè),獲得專(zhuān)屬的 API_KEY。使用的是郵箱注冊(cè),很簡(jiǎn)單。

然后是安裝 package:

pip install --upgrade tinify


接著是處理圖片:

''' 遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴, 互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書(shū)! ''' import tinify import ostinify.key = '此處填入你的key' path = "C:\\Users\\yunpoyue\\Pictures\\cat" # 圖片存放的路徑for dirpath, dirs, files in os.walk(path):for file in files:imgpath = os.path.join(dirpath, file)print("compressing ..."+ imgpath)tinify.from_file(imgpath).to_file(imgpath)

不到 10 行代碼,輕輕松松就批量壓縮圖片,簡(jiǎn)直不要太爽!20 M 的圖片能壓縮到 2 M,壓縮率達(dá)到驚人的 90%,成績(jī)喜人。

它的API還提供圖片裁剪、加水印、保存壓縮圖片至云服務(wù)商(亞馬遜云、谷歌云)等功能,非常強(qiáng)大。除壓縮過(guò)程有點(diǎn)慢,其它無(wú)可挑剔。

經(jīng)過(guò)一番探索與比較,我確定這是目前的最優(yōu)方案,所以強(qiáng)烈分享給大家。

總結(jié)

以上是生活随笔為你收集整理的10 行 Python 代码,批量压缩图片 500 张,简直太强大了的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。