一個切圖工具分享(python)

最近開發的android 應用上架小米的時候總是報out of memory 錯誤, 仔細review了N多遍代碼,并沒有發現那里不妥的地方, 而且自己使用過程中也沒有崩潰過. 于是使用moniter 監測了一下內存, 發現圖片占用了很大內存空間.

之前寫代碼都是設計直接給圖,然后將圖放到對應目錄下, 沒怎么研究過圖片尺寸的問題, 這次沒有專業設計師協助, 都是統一搞一張大圖放到mipmap中.

經過這次的問題, 詳細學習了android中尺寸相關內容, 內容如下兩篇參考文獻:

Android-分辨率以及dip(dp)、dpi、ppi、px、sp、pt說明

Android開發中dip,dpi,density,px等詳解

在以上學習基礎上, 使用python 的pillow庫寫了一個切圖的工具, 有兩個功能:

  1. icon切割, 切割正方形圖片,根據Android設計規范將圖標切割

    iconDirs = ["mipmap-ldpi","mipmap-mdpi","mipmap-hdpi","mipmap-xhdpi","mipmap-xxhdpi","mipmap-xxxhdpi"]
    iconSizes = [36, 48, 72, 96, 144, 192]

1.1 ios 圖標切割, 根據ios設計規范切割圖片

  1. 根據dip 修改圖片大小
    實現原理根據不同dpi對應的數值,使用公式 px = dip * dpi / 160;

    imgDirs = ["mipmap-ldpi", "mipmap-mdpi", "mipmap-hdpi", "mipmap-xhdpi", "mipmap-xxhdpi", "mipmap-xxxhdpi"]
    imgDpis = [120, 160, 240, 320, 480, 640]

附件: 詳細代碼

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容