iOS - MitImgChecker 重復(fù)圖片與無(wú)用圖片檢測(cè)

作者:Mitchell
輪子鏈接:MitImgChecker

需求

  • 之前項(xiàng)目中有想減少包體積的需求巷波,核心訴求還是減少無(wú)用資源文件外臂,再核心的則是減少冗余圖片致盟,圍繞著這個(gè)主要的需求點(diǎn)臂痕,用 python 和 shell 匆匆寫了一個(gè)腳本,代碼就不貼了囊骤,大概流程是每次發(fā)版前 build 檢查一下晃择,功能雖然實(shí)現(xiàn)了,但是還是有許多問(wèn)題遺留了下來(lái)也物,每次 build 前運(yùn)行與工程綁定比較緊密藕各,與工程耦合較重,并且如果想自定義的功能不太好實(shí)現(xiàn)焦除,比如:
  • 自定義搜索的圖片類型,每次都要改腳本作彤!
  • 自定義被搜索的文件類型膘魄,改腳本乌逐!
  • 添加搜索的圖片黑名單,改腳本创葡!
  • 添加被搜索文件的黑名單浙踢,改腳本!
  • 無(wú)法針對(duì)動(dòng)畫序列圖片進(jìn)行掃描分析灿渴,比如以下情況洛波,a_01 與 a_02 明明使用了,但是沒(méi)有被正確篩選出來(lái)骚露。
//圖片名稱 a_01.png, a_02.png, a_03.png
//代碼中實(shí)現(xiàn)如下:
int num;
[NSString stringwithFormat:@"a_%ld",num];
  • 無(wú)法檢測(cè)圖片雖然不重名但是內(nèi)容相同的圖片
a1.png 與 b1.png 名字不同蹬挤,但是內(nèi)容相同,保留一個(gè)即可
  • 無(wú)法檢測(cè)棘幸,被加入 imageset 的圖片焰扳,但是有的開(kāi)發(fā)者愿意把 imageset 的名稱改了,導(dǎo)致 imageset 的文件夾名稱與實(shí)際圖片名稱不一樣误续,導(dǎo)致檢測(cè)出錯(cuò)的問(wèn)題吨悍。(o(╥﹏╥)o)
  • 基于以上痛點(diǎn),本著不重復(fù)造一樣的精神蹋嵌,看了一下現(xiàn)成的輪子 2500多 star 的 LSUnusedResources育瓜,不能完美支持我如上的需求,所以下決心重新造個(gè)輪子栽烂,MitImgChecker 的誕生躏仇。

造輪子中

  • 噼里啪啦造輪子中...

輪子 MitImgChecker

  • 基于解決以上問(wèn)題用 Swift 重新造了個(gè)輪子:MitImgChecker,提供的能力如下:
  • a) 自定以掃描圖片類型:
可以自定義增加或者刪除 ```png, jpg, json...``` 格式的圖片格式
  • b) 自定義被掃描文件類型:
比如要在 ```.m / .mm``` 文件中進(jìn)行圖片文件的掃描
  • c) 自定義圖片子路徑黑名單:
比如增加了 ```/123/```, 那么圖片文件中帶有路徑 ```/123/``` 的就都會(huì)被過(guò)濾愕鼓,為防止誤過(guò)濾钙态,盡量添加精確的路徑。
  • d) 自定義被掃描文件子路徑黑名單:
比如增加了 ```/file/```菇晃,那么會(huì)過(guò)濾掉被掃描文件路徑中帶有 ```/file/``` 中的文件册倒,為防止誤過(guò)濾,盡量添加精確的路徑
  • e) 代碼片段中掃描指定圖片前綴
//圖片名稱可能是 a_01.png, 1_02.png ...
//代碼中使用可能如下磺送,此時(shí)無(wú)法準(zhǔn)確匹配 a_01驻子,那么此時(shí)添加圖片代碼前綴 a_ 就可以將其過(guò)濾掉
int num = 0;
[UIImage imageNamed:[NSString stringwithFormat:"a_%ld",num]]
  • f) 使用 .imageset 中文件與實(shí)際圖片命名不一致時(shí)的兼容掃描
//這種關(guān)于個(gè)人代碼風(fēng)格問(wèn)題,拖拽到 .xcaseets 中的圖片之后估灿,手動(dòng)改一下 imageset 的文件名稱崇呵。(恩,很頭痛~)
代碼是 1.png 但是拖進(jìn)去之后 將生成的 1.imageset 改成了 2.imageset.
  • g) 內(nèi)容重復(fù)圖片檢測(cè)能力
可以檢測(cè)出不同名稱相同內(nèi)容的圖片馅袁。

總結(jié)

  • 不用史上最強(qiáng)域慷、驚為天人... 等類似的標(biāo)準(zhǔn)話術(shù)來(lái)結(jié)尾了。這個(gè)小輪子滿足了我和我的伙伴開(kāi)發(fā)中的一些實(shí)際的痛點(diǎn),希望大家拿去用的時(shí)候隨手給個(gè) star犹褒,Thanks?(?ω?)?抵窒。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市叠骑,隨后出現(xiàn)的幾起案子李皇,更是在濱河造成了極大的恐慌,老刑警劉巖宙枷,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掉房,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡慰丛,警方通過(guò)查閱死者的電腦和手機(jī)卓囚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)璧帝,“玉大人捍岳,你說(shuō)我怎么就攤上這事〔橇ィ” “怎么了锣夹?”我有些...
    開(kāi)封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)苏潜。 經(jīng)常有香客問(wèn)我银萍,道長(zhǎng),這世上最難降的妖魔是什么恤左? 我笑而不...
    開(kāi)封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任贴唇,我火速辦了婚禮,結(jié)果婚禮上飞袋,老公的妹妹穿的比我還像新娘戳气。我一直安慰自己,他們只是感情好巧鸭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布瓶您。 她就那樣靜靜地躺著,像睡著了一般纲仍。 火紅的嫁衣襯著肌膚如雪呀袱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天郑叠,我揣著相機(jī)與錄音夜赵,去河邊找鬼。 笑死乡革,一個(gè)胖子當(dāng)著我的面吹牛寇僧,可吹牛的內(nèi)容都是我干的摊腋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼婉宰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼歌豺!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起心包,我...
    開(kāi)封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎馒铃,沒(méi)想到半個(gè)月后蟹腾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡区宇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年娃殖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片议谷。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡炉爆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出卧晓,到底是詐尸還是另有隱情芬首,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布逼裆,位于F島的核電站郁稍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏胜宇。R本人自食惡果不足惜耀怜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望桐愉。 院中可真熱鬧财破,春花似錦、人聲如沸从诲。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)盏求。三九已至抖锥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碎罚,已是汗流浹背磅废。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荆烈,地道東北人拯勉。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓竟趾,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親宫峦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岔帽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 這一生最感謝的是媽媽,她給我提供了她當(dāng)時(shí)能夠給我們的最好的教育環(huán)境导绷。 在媽媽的庇護(hù)下犀勒,我考上了大學(xué),成了那個(gè)年代妥曲,...
    烏市敏媽閱讀 182評(píng)論 0 0