Python一鍵上傳旅途照片生成展示網頁
作為一個比較喜歡出去見識世界、看看自然風光的人,這幾年有幸跑了一些地方,在祖國大地不同的地方見識了不同的人文風物,手機里也存了不少照片,想著如果以某種方式展現來回憶我的旅途的話,或許會給自己帶來不一樣的體驗。目標口號已經想好:去過的風景,直觀豐富地展示你的人生旅途,帶來新的回憶感受。在看到leaflet開源地圖庫時,覺得可以比較簡單地初步實現我的想法。
初步效果
效果圖1 - 60多張照片的效果圖,有部分照片的信息缺失
效果圖2 - 點擊顯示當時的照片效果圖3 - 可以進一步加入文字描述內容與動態效果
思 路一般手機照片都包含豐富的信息,如拍攝時間等等,而python又有強大的PIL圖像處理庫,使得我們可以輕鬆解析照片信息。在服務端我們可以使用Django來負責產生簡單的上傳機制,將上傳的圖片放入靜態資源文件夾以提供路由,並且對照片進行解析,獲得的信息利用Django自帶的ORM編寫照片信息模型,存入默認的sqlite3資料庫,十分簡便,然後利用Django-restframework庫將照片信息生成api,方便前端非同步獲取。在前端利用leaflet地圖庫生成展示效果,為了以後的開發,採用了vuejs框架,利用vue-resource從api非同步get數據,並同步到頁面。
這樣我們使用時便可以方便地一步上傳照片,在地圖上再現我們去過的風景,點擊出現當時的情景。當然直接根據照片只獲得了基本的時間和經緯度信息,進一步我們可以提供提交修改功能,讓用戶自己較為精細地修正地理位置(某些地理位置並不十分準確),並對照片做註解,提交回憶文本,然後一併展示。更進一步是利用時間數據,動態地顯示我們的旅途軌跡,以及自動生成整個人生旅途的動態展示效果。
leaflet文檔很詳細豐富,api文檔也很美觀,插件也不少。使用leaflet使用兩三句js語句就可以輕鬆地產生應用效果。不要對文檔望而生畏,我一開始也嫌煩,懶得看,後來靜下心一看發現很容易上手。在github上還有中文地圖圖層提供商的列表(不需要api key),我使用了高德地圖,個人比較喜歡。可用插件有Leaflet.EasyButton、Leaflet.markercluster。
項目GitHub地址:zr777/life-journey
-----------------------------------------
Python中文開發者的精神家園
作者:treelake Python中文社區專欄作者
博客地址:作者簡書
-----------------------------------------
微信公眾號:Python中文社區
會員登記:http://t.cn/RJMioxD加入圈子:http://t.cn/RiNtrPI
申請成為專欄作者:http://t.cn/RJAasHg申請成為主講人:http://t.cn/RMXAIwdPyLive:http://t.cn/RJagBFp社區維基:https://python-chinese.github.io/郵箱:pythonpost@163.com-----------------------------------------
未經授權,禁止轉載,否則將追究法律責任。
推薦閱讀:
※Python with MATLAB
※【Python3網路爬蟲開發實戰】1.6.1-Flask的安裝
※Python3 中代理使用方法總結
※Python 參數傳引用還是傳值?
※Python Generator漫談(續)