業(yè)務(wù)越來(lái)越多,云學(xué)習(xí)app包體積不斷增長(zhǎng),今年6月份,云學(xué)習(xí)app中臺(tái)開始瘦身。其中一個(gè)是需要個(gè)業(yè)務(wù)線將項(xiàng)目中使用的圖片(png)整理出來(lái)交由設(shè)計(jì)老師轉(zhuǎn)成webp格式。手機(jī)端上使用3x圖片轉(zhuǎn)換、iPad端使用2x圖片轉(zhuǎn)換。
我們學(xué)科介入這個(gè)事情之前和另外一個(gè)已經(jīng)做完這個(gè)事的學(xué)科打聽了一下,他們是一張一張圖片捋,手動(dòng)導(dǎo)出來(lái)的,說(shuō)眼睛都要瞎了...他們那條線已經(jīng)迭代快兩年了,可想得有多少圖片。想著應(yīng)該會(huì)有人比較懶,就跟各業(yè)務(wù)線以及中臺(tái)打聽是否已經(jīng)有腳本或者工具可以做這件事,哎...并沒(méi)有。個(gè)人比較懶吧,決定寫一個(gè)腳本來(lái)干這個(gè)事。
我們只有iPad項(xiàng)目,一部分圖片是放在資源bundle中,另外一部分是放在xcassets中。先來(lái)看bundle中的圖片,圖片的命名全部都是已@2x結(jié)尾,所以讀取bundle中圖片資源我直接判斷文件是否已@2x.png結(jié)尾。另外一部分在xcassets中的則不一樣,很多2x圖設(shè)計(jì)給到手之后研發(fā)老師就直接拖入項(xiàng)目了,并沒(méi)有已@2x去重命名,但是拖入xcassets中的圖片xcode會(huì)生成維護(hù)一個(gè).imageset結(jié)尾的json文件,去映射1x、2x、3x圖片的文件名,所以我在腳本中先去讀取.imageset文件中的2x文件名然后再拼接上地址。資源源地址拿到手就是轉(zhuǎn)移圖片了,這塊就不冗述了。腳本寫好后其他業(yè)務(wù)線小伙伴也需要,就加上了3x的輸入項(xiàng)。潦草寫的這個(gè)腳本應(yīng)付圖片命名規(guī)范、且沒(méi)有缺失圖片的項(xiàng)目還算合適,至少我們自己的需求滿足,沒(méi)有漏掉哪張圖片。但是對(duì)于本身項(xiàng)目圖片不全的業(yè)務(wù)方(比如2x圖有但是缺少對(duì)應(yīng)3x圖的),就沒(méi)有做缺失警告的輸出,以及路徑中有中文的話,腳本運(yùn)行也會(huì)有問(wèn)題。
代碼地址https://github.com/KrisMarko/extract_project_image
,歡迎小伙伴們多多指教。