Python高品質縮放切圖

來源:互聯網
上載者:User

最近剛接觸Python,以迅雷不及掩耳盜鈴之勢(只是迫不及待)應用到工作中去了
之前用 cmd+photoshop做批量影像處理(縮放切片),在執行效率(速度)上和靈活度上有很大限制,遂轉戰Python(我對於大語種龐大的類庫感到力不從心,喜歡用指令碼語言來快速編輯、執行)
真正開始學習Python第一天,我奮戰到深夜三點,勉強完成了可以替代先前用“cmd+photoshop快捷批處理”實現的切圖工具,執行效率大概是先前的10倍。
為什麼說是“勉強”,因為輸出映像品質沒Photoshop輸出的好。
Python影像處理用到PIL(Python Imaging Library),在resize(縮放)的時候會很大程度得降低映像可觀性(給我的感覺是部分像素相對位置亂了,沒有平滑縮放過渡),看下樣本:
       
(左:PS改變映像大小後輸出,右:使用PIL的縮放im.resize(size)後輸出)
上面可以看到PIL預設縮放後輸出的映像有“破損”
今天google到園子中另一位兄弟的一篇隨筆裡麵包含了這個高品質輸出的說明


PIL帶ANTIALIAS濾鏡縮放結果
im.resize(size, Image.ANTIALIAS)

從結果看,基本上可以和PS輸出的相匹敵了

速度上,比不帶ANTIALIAS濾鏡輸出的慢了8倍左右,但還是比PS輸出快,而且整個程式穩定性和靈活度比CMD+PS快捷批處理來的好。
在這之前我一直以為是最後im.save輸出導致映像品質下降的,浪費了不少時間,嗨~~

備忘此次練兵涉及的內容:

映像分割
>>> box = (int(left), int(top),int(right),int(bottom))
>>> region = im.crop(box)

映像縮放
>>> im_resized=im.resize(size, Image.ANTIALIAS)

類似dir的方法:glob
>>> path="c:/test"
>>> glob.glob(path+"/*")

還涉及一些os操作
os.path.basename
os.path.isdir
os.path.exists
os.mkdir

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.