寫作blog文章往往需要圖片來說明,但是一旦要放上圖片,抓圖、上傳圖片、縮圖、將縮圖網址複製,然後再貼上文章,如果花在這些瑣碎的時間上,寫作的興趣應該已經大大地降低了,為了能夠讓寫作的時候更流暢一些, 將經常要處理流程優化是必要的。
1. 上傳圖片至圖床
首先,圖床的選擇,使用flickr
- 優點: 免費空間,空間大,自動縮圖,縮圖的品質優異,提供API,手機可自動上傳
- 缺點: 可用免費工具似乎不多
2. Python script自動上傳, 抓取縮圖網址
利用python script來自動上傳電腦的圖片,並且產生縮圖網址,script應該有以下功能
- 上傳資料夾圖片(檢查資料夾圖片是否已經上傳,不重複上傳)
- 抓取最近上傳圖片,產生圖片縮圖網址 (選擇縮圖尺寸)
- 最近天數
- 特定日期 (日期範圍)
- 產生Markdown語法,抓取圖片description與縮圖連結
- 如何preview指定範圍內的照片,並且選擇需要產生縮圖檔案?
找到一個可參考的Git repro flickr-uploader
2.1 簡化flickr-uploader
原本的flickr-uploader用意是在讓本地端圖片資料夾可以跟flickr同步,所以會記錄本地端檔案並且與flickr檔案比較,上傳新檔案,同時也將本地端不存在檔案從flickr上刪掉,並且會自動將資料夾名稱做為上傳之後的set名稱。
我的uploader用途比較單純,當有些圖片是透過電腦抓下來的,或是電腦畫面擷取來的,可以當作部落格用途的圖片,可以利用uploader將圖片上傳,而不用費心登錄flickr然後選擇圖片上傳,所以可以自動將目錄中圖片上傳,並且加上特定的tag,或是將這些圖片都放到特定的set中,如果可以做到資料夾內容變更,就自動偵測並且上傳,上傳後再自動更新最近上傳列表,並且可供選取使用。
2.2 抓到flickr照片資訊資後轉換成照片url
格式如下
https://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}.jpg
https://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}_[mstzb].jpg
https://farm{farm-id}.staticflickr.com/{server-id}/{id}_{o-secret}_o.(jpg|gif|png)
字母後綴如下:
s 小正方形 75×75
q large square 150×150
t 縮圖,最長邊為 100
m 小,最長邊為 240
n small, 320 on longest side
– 中等,最長邊為 500
z 中等尺寸 640,最長邊為 640
c 中等尺寸 800,最長邊為 800†
b 大尺寸,最長邊為 1024*
h 大型 1600,長邊 1600†
k 大型 2048,長邊 2048†
o 原始圖片, 根據來源格式可以是 jpg、gif 或 png
3. 透過瀏覽器(web browser)篩選照片,與選擇所需照片
透過python script可以篩選出最近或特定日期的照片以後,要如何將縮圖顯示出來,並且透過瀏覽器選取要的照片,並且選完之後可以點一個按鈕,將選出的照片產生markdown語法顯示圖片的語法,並且複製到剪貼簿,然後可以直接貼上Markdwon文章中
找到一個完全符合我需求的jQuery套件,有美美的介面可以選取照片,所以後面要做的就是讓選取的照片去產生出我要的Mardkwon語法
imag-picker網頁的說明不多,一開始以為只要設定好option的data-img-src屬性,就會自動出現圖片可以選取
<div class="picker">
<select multiple="multiple" class="image-picker show-html">
<option data-img-src='http://placekitten.com/220/200' value='1'>Cute Kitten 1</option>
<option data-img-src='http://placekitten.com/180/200' value='2'>Cute Kitten 2</option>
<option data-img-src='http://placekitten.com/130/200' value='3'>Cute Kitten 3</option>
<option data-img-src='http://placekitten.com/270/200' value='4'>Cute Kitten 4</option>
</select>
</div>
結果是了老半天都只出現原始的select元件,網頁上也只說要將css&js檔匯入,結果我將demo頁面原始檔放到我local開啟,發現圖片也有顯示出來,慢慢將整個網頁我不需要的部份刪除,才發現需要再透過jQuery設定,並不是預設就開啟,所以下面的設定是需要的
<script type="text/javascript">
jQuery("select.image-picker").imagepicker({
hide_select: false,
});
</script>
然後就是開頭的匯入js&css檔
<link rel="stylesheet" type="text/css" href="image-picker/image-picker.css">
<script src="https://code.jquery.com/jquery-3.0.0.min.js" type="text/javascript"></script>
<script src="image-picker/image-picker.js" type="text/javascript"></script>
下面是遇到的一些問題找到的答案
因為要將python抓回來的最近照片清單存成json,讓網頁可以直接存取json的照片list
在網頁中選取的照片直接複製到剪貼簿,方便直接貼到文章中
我將flickr-uploader修改後版本 flickr-uploader-for-blog
Next target:
2017/1/8 Update: [將Markdown文章透過blogger API自動上傳修改文章] (http://maycehsu.blogspot.tw/2017/01/use-blogger-python-api-to-publish-from.html)