摘要:這個網站非常良心,開放了免費的,取消了每張大小的限制,只限定每個月處理張圖片。
本文原創并首發于公眾號【Python貓】,未經授權,請勿轉載。
原文地址:https://mp.weixin.qq.com/s/5hpFDgjCpfb0O1Jg-ycACw
熟悉 “Python貓” 的讀者應該知道,貓哥我發布的所有文章都使用了極具特色的配圖——原創文章使用貓圖,轉載文章使用狗圖,極少例外。
這幾天,我在用 Github page + hexo 搭建個人網站,為了延續風格,就想把配圖與文章一起遷移過去。這時候就出現了一個難題:我所用的圖片都是高清大圖,放到網站上就嚴重拖慢了加載速度。因此,需要先把圖片壓縮,再上傳。
我把需求概括如下:
需要批量壓縮圖片,現有大約 200 張,后會再增
是壓縮,不是切割截取,不改變圖片尺寸
原圖片大部分是 10M - 30M,目標是壓縮成 1M 以內,越小越好
按著這幾條線索,我搜索“批量壓縮圖片”、“圖片壓縮工具“、”批量處理圖片“......
一開始的想法是找輕量級的圖片壓縮工具,簡單處理一下就好。然而不知是搜索的姿勢不對,還是篩選過濾信息的姿勢不對,結果都差強人氣。
查找到的工具有本地與在線兩類,可試驗后都不太理想:有的軟件下載后才發現是付費的,有的在使用時直接導致程序卡死,有的壓縮率不夠需要多次壓縮,有的要求原始圖片大小不能超過 5 M,有的要求批量處理數量不超過 20 張,有的不支持批量壓縮......群內小伙伴還幫忙推薦了“PS+批處理”、acdsee、甚至手機應用 snapseed,都不合我意。
花了不少時間后,偶然看到有文章寫用 Python 來壓縮圖片。一文驚醒夢中人,我怎么沒想到呢?
先看看別人是怎么做的。這篇《如何用Python智能批量壓縮圖片?》(https://zhuanlan.zhihu.com/p/32246003)文章中介紹了使用 PIL 庫的 Image 模塊來壓縮圖片的方法,主要通過調節圖片長寬數值的方式。
PIL 是個強大的圖片處理庫,但只支持 Python 2,而且早已停止更新。有開發者在它基礎上改良并維護了 Pillow,支持 Python 3。之前有所耳聞,沒用過。于是貓哥查了幾篇教程和文檔。讀后發現它壓縮圖片的方法主要是等比例縮放、裁剪以及改變格式等,并非我所要的。
還看到一篇《如何在無損的情況下讓圖片變的更小》(https://juejin.im/post/5959fbe0f265da6c2518d740)文章,它介紹了 Yelp(美國最大點評網站)的三種優化圖片的策略:Pillow、動態調優、更換編碼器。有些方法很高大上,應該是業界先進經驗了,但它希望保證圖片無損,所有方法加起來才可以使圖片大小平均減少 30%,因此并不滿足我的要求。另外它引申介紹了幾種方法,可是需要花費時間去研究,我也放棄了。
最后,終于找到了一種非常便捷,又十分滿足的方案,下面開始進入正題了。(不要嫌我啰嗦,探索的過程也很有趣)(噓,實際上是因為下面要介紹的方法太簡單,才區區幾行代碼,我實在忍不住強行加戲......)
----------------小心翼翼的分割線---------------
Tinypng 網站提供在線圖片壓縮服務,是所有圖片壓縮工具中最好用的之一,但它有所限制:批量最多處理 20 張,且每張大小不允許超過 5 M。
這個網站非常良心,開放了免費的 API ,API 取消了每張大小的限制,只限定每個月處理 500 張圖片。這對我來說,已經足足有余了。
下面介紹怎么使用它。第一步是在它網站上注冊,獲得專屬的 API_KEY。使用的是郵箱注冊,很簡單。
然后是安裝 package:
pip install --upgrade tinify
接著是處理圖片:
import tinify import os tinify.key = "此處填入你的key" path = "C:UsersyunpoyuePicturescat" # 圖片存放的路徑 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 行代碼,輕輕松松就批量壓縮圖片,簡直不要太爽!20 M 的圖片能壓縮到 2 M,壓縮率達到驚人的 90%,成績喜人。
它的 API 還提供圖片裁剪、加水印、保存壓縮圖片至云服務商(亞馬遜云、谷歌云)等功能,非常強大。除了壓縮過程有點慢,其它無可挑剔。
經過一番探索與比較,我確定這是目前的最優方案,所以強烈分享給大家。
公眾號【Python貓】, 本號連載優質的系列文章,有喵星哲學貓系列、Python進階系列、好書推薦系列、技術寫作、優質英文推薦與翻譯等等,歡迎關注哦。后臺回復“愛學習”,免費獲得一份學習大禮包。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43747.html
摘要:拍照黨福利駕到華為云微認證教你實現圖片壓縮和水印添加在手機拍照成為日常的今天,用照片記錄生活已成為人們的一種習慣。華為云微認證將總共送出個免費機會,獎項公布時間月日。 拍照黨福利駕到 華為云微認證教你實現圖片壓縮和水印添加 在手機拍照成為日常的今天,用照片記錄生活已成為人們的一種習慣。拍照容易處理難,面對手機相冊中大量的照片,你是否也苦惱過?刪,舍不得;上傳,會不會被盜圖?能否發出足夠...
小編寫這篇文章的主要目的,主要是講解一些關于python的事情,比如需要對圖片進行批量壓縮,壓縮的方法還是比較的多的,那么,為了提高效率,怎么進行批量壓縮呢?下面就給大家詳細解答下。 前言 最近在研究怎么對圖片資源進行無損壓縮,網上也找了一些資料。總而言之,收獲不少,所以想對最近的學習做個總結。 無損壓縮其實是相對而言的,目的是為了減小圖片資源的內存大小但又不影響圖片的顯示質量。下面我將...
摘要:會各種折行,樣式錯亂,那么細致如蘋果肯定不允許這種事情發生。又一次變遷蘋果公司在年,推出了新一代的,他們的屏幕都比要寬要大。 歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面(不僅僅是代碼): https://segmentfault.com/blog/frontenddriver 不同于PC時代,移動web的樣式更加多樣,也由于手機分辨率的碎片化,移動w...
閱讀 3033·2021-10-13 09:39
閱讀 1880·2021-09-02 15:15
閱讀 2439·2019-08-30 15:54
閱讀 1803·2019-08-30 14:01
閱讀 2602·2019-08-29 14:13
閱讀 1411·2019-08-29 13:10
閱讀 2731·2019-08-28 18:15
閱讀 3870·2019-08-26 10:20