如何自動生成d醬的年終穿搭總結(jié)
? ? ? ? 昨天是2021年的最后一天,當(dāng)我走到d醬的工位時,我發(fā)現(xiàn)d女士在摸魚勤奮地使用手機(jī)進(jìn)行拼圖。我知道又到了發(fā)年終穿搭總結(jié)的時候了。

????????由于d醬一年要上多達(dá)200多天班,每天都要分享穿搭,每一套有一張上半身自拍和一張對鏡全身照,也就是說她每年年底要整理大于400張圖片。我很驚訝于這個人居然是手工做這件事的。我問她為啥不寫個腳本做,她說我可以寫一個,然后她明年年底就有的用了。不僅如此,d女士還要把我立的這個flag在1月1日發(fā)表的年終總結(jié)中記下來。
????????于是,經(jīng)歷了一個晚上和一個上午,大概五六個小時的時間,我在d醬發(fā)2021年穿搭總結(jié)之前把這個自動化生成d醬年終總結(jié)的東西做出來了。源代碼已經(jīng)開源到GitHub,非常簡單,人人都可以學(xué)得會。

????? ?這個工程實際上分兩個部分,一個是從微博上把d醬的穿搭圖片下載下來,一個是把圖片拼接起來。接下來我們來看一看這個東西是怎么做的。
???????首先,我們觀察一下微博的手機(jī)網(wǎng)頁版,發(fā)現(xiàn)在用戶個人主頁瀏覽瀑布流的時候,服務(wù)端直接返回json格式的數(shù)據(jù),里面要啥有啥。請求里有一個參數(shù),用于在下拉刷新的時候標(biāo)記剛才看到哪兒了,只要我自己生成一下就好。這第一步一下就解決了。

????? ? 第二步就是我們要從微博內(nèi)容中解析出每天的衣服的名稱。通過觀察d醬的微博可以發(fā)現(xiàn),她每天的微博格式異常工整,第一行是tag名,然后有一個空行,第三行是裙子的名稱,這給我的處理帶來了巨大的便利。

????????微博的服務(wù)端給的微博內(nèi)容實際上是個富文本,里面有專門的標(biāo)記用來區(qū)分純文本、話題tag、@別人等等。稍加處理就可以提取出裙子名字,簡直易如反掌。

????????接下來就是將圖片下載并拼接起來了。d醬每天的前兩張圖片基本都是一張半身自拍和一張對鏡自拍,長寬比大約是3:4,所以只要取前兩張圖即可。
????????這個時候我還發(fā)現(xiàn)了一些調(diào)皮的地方,d醬每天在微博發(fā)的圖,長寬比都不嚴(yán)格是3:4,有的時候?qū)捯稽c,有的時候高一點,可能是由于裁剪的時候比較隨意或者是做了拉伸等操作導(dǎo)致的。這樣可能會導(dǎo)致拼出來的圖片有黑邊或者變形等情況。于是不得不加了一步自適應(yīng)的裁剪。

????????
????????之后我們再把每天的圖拼起來,下面加上裙子名稱和日期,這一切就完成了!總共生成了18張長圖。
????????全都做完之后,我發(fā)現(xiàn)這里面還是有調(diào)皮的地方。比如說2月7日的前兩張圖全都是半身自拍。

????????再比如4月25日這條微博,第二天是個風(fēng)景照。

????????由于我比較懶了,所以這種case我就不處理了。給大家看一看成果,順便祝大家新年快樂。






















