使用Alfred + Gitee搭建免費圖牀

環境

系統: Mac 工具: Alfred, git, homebrew, pngpaste. 語言: perl 其他: Gitee

工具下載

https://gitee.com/serpmelon/inazuma

思路

使用Gitee倉庫作爲圖牀, 使用Alfred工作流簡化上傳圖片流程, 並將上傳圖片地址轉換爲markdown格式輸出到剪切板中.

使用

複製一張圖片, 然後使用快捷鍵CMD + shift + u或者喚出Alfred命令行輸入pp. 上傳成功後會發送通知提示上傳成功.

實現

創建Gitee圖牀環境

註冊賬號, 創建倉庫, 注意修改爲公共倉庫, 把倉庫拉到本地, 以後會將目標圖片複製到倉庫中. 其他沒什麼說的.

複製剪切板中的圖片到指定路徑

遇到的第一個難題, 如何將剪切板中的圖片複製到指定目錄下呢(git目錄)? pbcopy和pbpaste命令只能操作文本, 所以第一個想法, 複製圖片的路徑, 這樣就可以通過操作文本進行賦值操作.

對圖片使用cmd+option+c會複製其路徑, 然後通過執行cp命令將文件複製到指定目錄中.

system("cp $source $target");

但是, 這樣很不方便, 而且通常情況下都是截一個圖片沾到自己的文章中, 如果只能通過路徑複製, 那麼每次截圖還需要下載到本地. 所以需要實現將剪切板中的圖片文件複製到目錄的功能.

使用pngpaste工具實現上述功能, 使用homebrew下載

brew install pngpaste

使用簡單

pngpaste hooray.png # 目標文件

參考 https://github.com/jcsalterego/pngpaste

本地運行正常, 但是在Alfred中運行異常, 排查發現是找不到pngpaste命令. Alfred運行腳本不會使用用戶的運行環境, 所以找不到第三方命令, 解決辦法就是我們幫它找到命令, 使用全路徑就可以拉, 路徑配置到Alfred變量中.

system("$PASTE_DIC/pngpaste $target");

git命令提交圖片

圖片已經複製到git本地倉庫了, 然後只需要push上去就好了.

system("cd $GIT_DIC; git add .;git commit -m 'pic';git push");

拼接圖片地址

瀏覽下Gitee上圖片的地址, 類似這樣 https://gitee.com/serpmelon/pictures/blob/master/20230102/1672643597serpmelon15714.png 將blob換成raw就可以訪問了, 修改後: https://gitee.com/serpmelon/pictures/raw/master/20230102/1672643597serpmelon15714.png

然後按照markdown格式拼接地址後:

![](https://gitee.com/serpmelon/pictures/raw/master/20230102/1672643597serpmelon15714.png)

問題

  1. 圖片過大問題, 實際使用過程中發現圖片已經上傳但是就是無法顯示, 最後發現是圖片過大, 無法展示, 這個應該是Gitee的限制, 比如下面這個鏈接對應的圖片3.6M就無法顯示.
![](https://gitee.com/serpmelon/pictures/raw/master/20230102/1672646592serpmelon10602.png)

所以爲了能正常顯示需要對圖片進行一個壓縮處理, 目前調研了部分工具可以實現圖片的壓縮, 但是本來就是一個簡單的圖牀工具還需要用戶自己下載各種工具? 所以壓縮功能打算自己後面實現一個.

  1. 同上面的問題, 使用本工具需要用戶自己下載pngpaste, 這個也打算自己實現下.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章