作者 主題: 化剎那為永恆 -- 在 X window 抓圖的方法  (閱讀 5134 次)

0 會員 與 1 訪客 正在閱讀本文。

劍客

  • 活潑的大學生
  • ***
  • 文章數: 238
    • 檢視個人資料
    • http://kalug.ks.edu.tw
這是 KaLUG 的朋友告訴我的,

#!/bin/bash
ID=`xwininfo |grep 'Window id'|awk '{print $4}'`
NOW=`date +%s`
xwd -frame -id $ID -out $NOW.xwd

這是一隻抓圖的小程式,利用 X window 的工具程式 xwd 抓一張圖並存為副檔名為 xwd, tiff 格式的圖。然後你就可以用 gimp 編輯。

使用方法是在 X window 的 console 下執行這隻程式,然後游標會變成 + 號,點取你要取的視窗就好了。此時你可以在執行該程式的目錄發現一個 9???????.xwd 的圖(?表未知數),那就是了。

Anonymous

  • 訪客
化剎那為永恆 -- 在 X window 抓圖的方法
« 回覆 #1 於: 2001-07-30 21:11 »
很感謝劍客提供的這個辦法﹐不過我在使用的時候﹐發現需要調整好 terminal 的位置﹐不能覆誚b選取視窗之上﹔如果遇到最大化視窗抓取的時候就有所麻煩。下面的方法﹐可以供大家參考﹐以解決這個問題﹕

1) 以 root 身份修改 script (我暫時取名為 grapic)﹕
#!/bin/bash
ID=`xwininfo | grep 'Window id' | awk '{print $4}'`
HDIR=$HOME/pics/
NOW=`date +%s`
OUTFILE=$HDIR$NOW.tif

if [ -z $ID ]; then
        echo "$0: Error: Can not get window id."
        exit 1
fi
if [ ! -d $HDIR ]; then
        echo "Make directory, $HDIR, for picture saving."
        mkdir $HDIR
        if [ ! "$?" = "0" ]; then
                exit 2
        fi
fi
xwd -frame -id $ID -out $OUTFILE
echo "Window capture is saved as $OUTFILE."
exit 0

2) 將 script 存於 /usr/bin 裡面﹐並加上執行權限﹕
cp grapic /usr/bin
chmod +x /usr/bin/grapic

3) 回到普通用戶身份並進入 X window﹐(我這裡用 KDE2)﹐然後開一個 terminal﹐並輸入 grapic ﹐選擇一個視窗(可以是 termial 自己)﹐確定沒有任何錯誤信息﹐並能在 ~pics/ 目錄裡找到抓下來的圖檔。

4) 然後在 desktop 上按右鍵﹐並選擇 'Create New' --> 'Link To Application ...'

5) 在 'General' 裡面﹐將程式名稱改為 grapic﹐同時為自己選一個喜歡的 icon。

6) 在 'Execute' 裡面的 'Command' 欄位填上﹕ /usr/bin/grapic 。

7) 按 OK 完成(不必修改其它)。

8) 將 Desktop 上面的 grapic 圖標礎n﹐點選它就能使用了﹗

9) 如果要抓最大視窗(或任何當前視窗)﹐那可以按 KDE 工具列的最左邊的“OK”開始﹐然後選擇 'Run Command...' ﹐ 輸入 grapic 就可以了 ^_^