2011年2月6日 星期日

Mac OSX 的內建螢幕擷圖功能


Mac OSX 比起 Windows 來說,最讓人讚嘆的地方就是內建許多 "有用" 的小軟體 [1],比如說 "磁碟工具程式"、"預覽程式" ... 等等。但是除了這些具有圖形介面的程式之外,還有一個隱藏的寶庫尚待使用者去發掘,那就是承襲 BSD base 的 Shell command !! 雖然麥金塔系統的精華在於圖形使用者介面 (GUI),但是換成 BSD 核心後,附帶的眾多命令列程式 (Command line,CL) 不用也是可惜,有時候幾行指令就可以解決問題,提高不少工作效率 [2]。

不過,Apple Inc. 並不是將 BSD "平行" 地整合進 Mac OSX,他們對於系統內核進行了諸多修改,包括很多命令列工具亦是如此。這次要介紹的內建小工具即是 Mac OSX 特有的,而且更特別的是,使用者已經在不知情的情況下用了很多年,它就是 "螢幕擷圖" 的功能。

前些日子,我在某雜誌上看到一個蠻實用的小軟體 -- 7Capture :


這軟體功能不多,就只能擷取整個螢幕畫面跟單一視窗,但是已經非常實用。回頭看看我們的 Mac,這功能早就內建在系統中了,怎麼使用呢 ? 大致上有三個熱鍵比較常用 [3] :
  1. Command + Shift + 3 = 擷取整個主螢幕的圖
  2. Command + Shift + 4 = 此時滑鼠游標會變成十字型,圈選的地方就是擷圖的範圍
  3. Command + Shift + 4 (游標變成十字後) + Space = 擷取任一視窗、圖示、工具列 .. 等的擷圖 : 

(系統內建的螢幕擷圖功能會將檔案存在桌面,更改預設儲存路徑可用指令:defaults write com.apple.screencapture location /指定路徑/)

看到這裡,應該很多人心裡想 "後 !! 這我早就用過了嘛 !!" 沒錯,這不是什麼新東西,但是如果可以找到這工具的本尊,利用終端機輸入指令來執行,就可以做到一些平常用熱鍵做不到的事。

在電腦的世界裡,使用者能做的所有動作都由程式構成,由於螢幕截圖的熱鍵是跨程式均有效 (就像 "複製" 的 Command + C,幾乎每個程式裡都內建這個熱鍵),故我們可以得知這個功能應該是內建於系統支援的程式 Framework 中,而其本尊是一個獨立的小程式 "screencapture",儲存的路徑是 /usr/sbin/screencapture,每次當使用者按下這個熱鍵的時候,系統隨即送出一個訊息給 screencapture,請它進行螢幕擷圖的工作。

而在終端機中要怎麼操作它呢 ? 以下有幾個比較實用的指令 :
  1. screencapture -m [存檔路徑] = 擷取整個主螢幕的圖,效果同等於 Command + Shift + 3
  2. screencapture -i [存檔路徑]  = 游標變成十字型,可再加按 Space,效果同等於 Command + Shift + 4
  3. screencapture -w [存檔路徑] = 直接進入選擇視窗擷圖的模式
  4. screencapture -C [存檔路徑] = 擷圖時包含滑鼠游標 (未加 i、w 等參數時,擷取整個螢幕的圖) 
  5. screencapture -c = 將擷圖存在剪貼簿中
  6. screencapture -x [存檔路徑] = 擷圖時不要發出音效 
  7. screencapture -o [存檔路徑] = 擷取視窗擷圖時不包含視窗的陰影 (10.5 later)
  8. screencapture -T [秒數] [存檔路徑] = [秒數] 後擷圖,預設是 5 秒 (10.5 later) 
(上述指令的參數可依需求同時使用,例如 :  screencapture -mCT [秒數] [存檔路徑]) 除了上述的指令之外,只要能以終端機指令執行,就能有更多不同的應用。例如 screencapture 可以跟其它指令串連,比如說將截圖出來的圖檔輸入至別的指令加工;或是寫自己程式時視情況使用指令呼叫螢幕擷圖功能 ..... 等等。基本上平常用熱鍵來擷圖就已經非常方便且實用 [4],可是哪天有特殊需求的時候,以指令執行的方法也許有意想不到的妙用,就等各位自己去發揮了。


附註
1. 之所以要標註 "有用" 是因為 Windows 也內建不少小軟體,可是大多很爛 (Windows 7 之後有好很多),沒什麼實用價值,最有名的應該就是 "接龍" 跟 "踩地雷"  =  =  而最有用的應該是 "小畫家" (但我不諱言,小畫家真的蠻強的 .... 只是要用得好必須要有超人的技術 ......)。
2. 話雖那麼說,其實我一點都不想跟命令列程式為伍,好不容易進入 GUI 的時代何必再走回頭路 ? 只是有時候不用不行。至於 Windows 也是有它自己的命令列程式啦 ...... 只是實用度天差地遠,也沒啥人在用,頂多是讓某些 geek 拿來寫 bat 而已。
3. 好像加入 Control 鍵可以將圖送至剪貼板 ...... 不過這功能我沒用過  XD
4. 其實 Mac OSX 中有另外內建一個螢幕擷圖的工具程式,叫作 "畫面擷取" (位於 /應用程式/工具程式/畫面擷取),功能跟使用熱鍵幾乎一樣,只是這程式內部指定的擷圖熱鍵跟系統的不同而已。我想沒幾個人使用過這個軟體吧 ?! 因為系統的擷圖熱鍵實在太好用了,這小程式唯一特別的地方就是可以定時十秒後擷圖,不用進入終端機輸入指令。

沒有留言:

張貼留言