使用Alfred + Gitee搭建免費(fèi)圖床

環(huán)境

系統(tǒng): Mac
工具: Alfred, git, homebrew, pngpaste.
語言: perl
其他: Gitee

工具下載

https://gitee.com/serpmelon/inazuma

思路

使用Gitee倉庫作為圖床, 使用Alfred工作流簡化上傳圖片流程, 并將上傳圖片地址轉(zhuǎn)換為markdown格式輸出到剪切板中.

使用

復(fù)制一張圖片, 然后使用快捷鍵CMD + shift + u或者喚出Alfred命令行輸入pp.
上傳成功后會(huì)發(fā)送通知提示上傳成功.

依賴

使用pngpaste工具實(shí)現(xiàn)剪切板相關(guān)功能

brew install pngpaste

使用ImageMagick實(shí)現(xiàn)圖片壓縮

brew install imagemagick

實(shí)現(xiàn)

創(chuàng)建Gitee圖床環(huán)境

注冊(cè)賬號(hào), 創(chuàng)建倉庫, 注意修改為公共倉庫, 把倉庫拉到本地, 以后會(huì)將目標(biāo)圖片復(fù)制到倉庫中. 其他沒什么說的.

配置Alfred workflow

下載并將工具拖進(jìn)Alfred中, 由于依賴了第三方軟件, 在執(zhí)行腳本時(shí)需要指定工具目錄, 所以需要在workflow中配置對(duì)應(yīng)路徑如下:

image
GIT_DIR git倉庫本地路徑, 圖片會(huì)直接復(fù)制到這里.
GIT_DOMAIN git圖床路徑, 比如我配置的是 https://gitee.com/serpmelon/pictures/raw/master.
IMAGE_MAGICK_DIR ImageMagick工具安裝的路徑.
PASTE_DIR pngpaste工具安裝的路徑.

對(duì)于homebrew下載的工具可以通過如下命令查看

brew list pngpaste
返回: /usr/local/Cellar/pngpaste/0.2.3/bin/pngpaste
則配置路徑: /usr/local/Cellar/pngpaste/0.2.3/bin

brew list imagemagick
返回: 
/usr/local/Cellar/imagemagick/7.1.0-16/bin/Magick++-config
/usr/local/Cellar/imagemagick/7.1.0-16/bin/MagickCore-config
/usr/local/Cellar/imagemagick/7.1.0-16/bin/MagickWand-config
/usr/local/Cellar/imagemagick/7.1.0-16/bin/animate
/usr/local/Cellar/imagemagick/7.1.0-16/bin/compare
/usr/local/Cellar/imagemagick/7.1.0-16/bin/composite
...
配置路徑: /usr/local/Cellar/imagemagick/7.1.0-16/bin

復(fù)制剪切板中的圖片到指定路徑

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

對(duì)圖片使用cmd+option+c會(huì)復(fù)制其路徑, 然后通過執(zhí)行cp命令將文件復(fù)制到指定目錄中.

system("cp $source $target");

但是, 這樣很不方便, 而且通常情況下都是截一個(gè)圖片沾到自己的文章中, 如果只能通過路徑復(fù)制, 那么每次截圖還需要下載到本地. 所以需要實(shí)現(xiàn)將剪切板中的圖片文件復(fù)制到目錄的功能.

使用pngpaste工具實(shí)現(xiàn)上述功能, 使用homebrew下載

brew install pngpaste

使用簡單

pngpaste hooray.png # 目標(biāo)文件

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

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

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

git命令提交圖片

圖片已經(jīng)復(fù)制到git本地倉庫了, 然后只需要push上去就好了.
由于在不同目錄執(zhí)行, 執(zhí)行會(huì)報(bào)提示"fatal: not a git repository", 使用類似如下命令即可

git --git-dir=/x/y/.git --work-tree=/x/y add .

圖片壓縮

Gitee限制圖片大小, 對(duì)于大于1MB的圖片會(huì)打不開.


image

所以對(duì)于大的圖片需要進(jìn)行壓縮處理, 這里依賴ImageMagick, 使用brew下載.

brew install imagemagick

拼接圖片地址

瀏覽下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)
image

問題

  1. 目前依賴了pngpaste和ImageMagick工具, 后面自己簡單實(shí)現(xiàn)下, 這樣用戶就不需要自己再單獨(dú)下載依賴了.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容