日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS安装scrot记

發(fā)布時間:2024/4/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS安装scrot记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

似乎感覺這個事件沒什么好寫的,但我還是記一下。

CentOS下沒有個很爽的截圖軟件,網(wǎng)上學(xué)友們都推薦scrot這個。


提示:在Gnome下,可以用 gnome-screenshot 命令行進截屏,詳細(xì)使用方法請 man。安裝scrot實在太折騰了!


1. 安裝

scrot的源碼在:http://freecode.com/projects/scrot

下載下來安裝,可能會遇到一個庫:giblib,而giblib又依賴imlib2。在這個freecode.com網(wǎng)上都可以下載。怎么我安裝,我不再多說了,莫非都是:

tar?xzvf?xxxx.tar.gz cd?xxxx ./configure?&&?make sudo?make?install

你懂的,在./configure過程中缺什么就去找什么。

1.1 安裝 libX11

在 make 的時候,出現(xiàn)以下錯誤:

In file included from main.c:26:
scrot.h:29:22: error: X11/Xlib.h: No such file or directory

在網(wǎng)上查得原因,需要安裝:libX11-devel

sudo?yum?install?libX11-devel

這個錯誤就過了。

1.2 安裝lmlib庫

不過又出現(xiàn)了這個錯誤:

In file included from /usr/local/include/giblib/giblib.h:30,
???????????????? from scrot.h:51,
???????????????? from main.c:26:
/usr/local/include/giblib/gib_imlib.h:32:20: error: Imlib2.h: No such file or directory
這是 imlib 庫沒有安裝的原因。

下載庫 imlib2-1.4.4 進行安裝,make 時報錯:

1.2.1 缺libXext

api.c:5:34: error: X11/extensions/shape.h: No such file or directory
In file included from api.c:23:
ximage.h:5:33: error: X11/extensions/XShm.h: No such file or directory
In file included from api.c:23:

sudo?yum?install?libXext-devel

還有錯誤:api.c:30:22: error: ft2build.h: No such file or directory

1.2.2 缺freetype

sudo?yum?install?freetype-devel

報錯:/usr/include/ft2build.h:56:38: error: freetype/config/ftheader.h: No such file or directory

需要源碼安裝 freetype 才行。從 http://www.freetype.org/download.html 下載源碼包進行安裝。

再 make,報錯:api.c:5416: fatal error: opening dependency file .deps/api.Tpo: Permission denied

缺權(quán)限。那就 sudo make

1.2.3 鏈接時報錯:/usr/bin/ld: cannot find -lpng12

$?locate?libpng12.so /usr/lib/libpng12.so.0 /usr/lib/libpng12.so.0.49.0

發(fā)現(xiàn) /usr/lib/ 下有兩個類似的庫,但就是沒有 libpng12.so,將 libpng12.so.0 文件鏈接到 /usr/lib/libpng12.so 上。

sudo?ln?/usr/lib/libpng12.so.0?/usr/lib/libpng12.so

再 make,報錯:loader_png.c:2:17: error: png.h: No such file or directory

1.2.4 安裝 libpng 庫

去 http://libpng.sourceforge.net/index.html 下載后安裝。

再 make,報錯:

loader_png.c: In function ‘load’:
loader_png.c:61: error: dereferencing pointer to incomplete type
loader_png.c: In function ‘save’:
loader_png.c:268: error: dereferencing pointer to incomplete type


1.2.5 png_structp未完全定義問題

打開 loader_png.c 文件,發(fā)現(xiàn)確定引用到了 png_structp 的類型。

????????if?(setjmp(png_ptr->jmpbuf))??/*?筆者:這里引用到了?png_ptr?的內(nèi)部成員?*/{png_destroy_read_struct(&png_ptr,?&info_ptr,?NULL);fclose(f);return?0;}

png_ptr 就是 png_structp 類型的。在這個文件里沒有定義 png_structp 的類型,頭文件也只包含了 png.h

用 locate png.h 找到 /usr/local/include/png.h,打開文件發(fā)現(xiàn):

typedef?struct?png_struct_def?png_struct; typedef?png_struct?*?png_structp;

文件中沒有定義 png_struct_def 結(jié)構(gòu)體。找源文件中去找找看。

在源碼的 ./pngstruct.h 文件里有定義。但 png.h 文件沒有 #include "pngstruct.h",所以報錯。

筆者估計png庫的設(shè)計都并沒有打算將 png_struct_def 的結(jié)構(gòu)體的內(nèi)部成員暴露出來,所以在 png.h 文件里沒有定義,只是指定了指針與訪問函數(shù)。沒想到在 png_loader.c 里破了這個規(guī)距。

既然如此,那么就好辦了。將 pngstruct.h 文件copy到 /usr/local/include/ 目錄下去。再在 png_loader.c 文件里 #include <pngstruct.h> 就行了。
再 make,報錯:
loader_png.c: In function ‘load’:
loader_png.c:62: error: ‘png_struct’ has no member named ‘jmpbuf’
loader_png.c: In function ‘save’:
loader_png.c:269: error: ‘png_struct’ has no member named ‘jmpbuf’


1.2.6 png_struct_def結(jié)構(gòu)中沒有jmpbuf問題

說明剛剛的修改生效了,只是 png_struct_def 中確實沒有 jmpbuf 這個字段。這很可能是版本不一致導(dǎo)致的。
在本人 libpng 的版本中,沒有 jmpbuf 這個字段,但是提供了一個從 png_struct_def 中獲取 jmpbuf 的函數(shù)接口

jmp_buf?png_jmpbuf(?png_structp?*png_ptr);

用 png_jmpbuf(png_ptr) 來替代對 png_ptr->jmpbuff 的直接訪問。

再 make,這次通過了!


好!imlib2-1.4.4 是編譯通過了。再回來 make scrot。

很順利,也通過了!


2. 運行時libgiblib.so動態(tài)庫問題

全部安裝完成功了之后,運行scrot時出現(xiàn)一個錯誤:
scrot: error while loading shared libraries: libgiblib.so.1: cannot open shared object file: No such file or directory

說是libgiblib.so.1打不開。解決的方法是:

(1)找到這個libgiblib.so.1文件。

$?find?/usr?-name?libgiblib.so.1??找到這個文件在位置 /usr/local/lib/libgiblib.so.1? $?cat?/etc/ld.so.conf??查看當(dāng)前庫加載路徑,看有沒有把這個文件包含進去 include?ld.so.conf.d/*.conf? $?echo?"/usr/local/lib"?>>?/etc/ld.so.conf?添加庫路徑? $?ldconfig??加載庫文件后scrot正常使用來? $?scrot?--help?查看scrot的幫助信息? Usage?:?scrot?[OPTIONS]...?[FILE]?Where?FILE?is?the?target?file?for?the?screenshot.?If?FILE?is?not?specified,?a?date-stamped?file?will?be?dropped?in?the?current?directory.?See?man?scrot?for?more?details?-h,?--help????????????????display?this?help?and?exit?-v,?--version?????????????output?version?information?and?exit?-b,?--border??????????????When?selecting? ……

好了,現(xiàn)在可以使用了。

3. 使用方法

下面是我摘抄一些scrot的使用方法:http://blog.csdn.net/luonanqin/article/details/7770554

[一般用法] 使用 scrot 可以抓取整個桌面、某個指定的窗口、以及選擇的矩形區(qū)域。

  抓取桌面:scrot desktop.png,該命令將當(dāng)前的整個桌面抓取下來,并保存為 desktop.png 文件??梢栽诋?dāng)前的目錄中找到此圖像文件。
  抓取窗口:scrot -bs window.png,選項 b 使 scrot 在抓取窗口時一同將外邊框抓取下來,而 s 選項則讓用戶選擇所要抓取的是何窗口。
  抓取區(qū)域:scrot -s rectangle.png,在執(zhí)行此命令后,使用鼠標(biāo)拖曳的矩形區(qū)域?qū)⒈?scrot 抓取下來,并保存為 rectangle.png 文件。

[高級用法] 對于普通的抓取,使用 scrot 的基礎(chǔ)便足以應(yīng)付了。但在某些特殊情況之下,使用 scrot 抓取圖像需要講究一些技巧。
  延時抓取:scrot -cd 10 menu.png,此命令中的 d 選項用于延時抓取圖像,其后的 10 代表延時 10 秒;前面的選項 c 顯示倒計時。在抓取菜單或是命令提示時,該技巧將充分展示其魔力。
  生成縮圖:scrot -t 50% thumb.png,這個命令在抓取圖像的同時生成該圖像的縮略圖。選項 t 將打開此功能,其后的 50% 為原圖的縮放百分比。
  更改品質(zhì):scrot -q 70 quality.jpg,此命令中的 q 選項用于更改所抓圖像的品質(zhì),其數(shù)值介于 1-100 之間,默認(rèn)為 75。數(shù)值越大,意味著圖像品質(zhì)越高;同時,圖像的壓縮率也就越低,占用空間越大。
  操作抓圖:scrot action.png -e ‘mv $f ~/images/’,該命令將抓取的圖像移動到 ~/images/ 目錄。顯然,操作圖像的功能由 e 選項開啟,其中的 $f 代表原圖的路徑/文件名。

  以上示例皆指定了需要保存的抓圖的文件名稱。實際上,如果不指定名稱,那么 scrot 在抓取圖像后會自動使用當(dāng)前的日期時間、寬度高度的組合來生成文件名稱。如:2012-07-21-154232_238x148_scrot.png

  然而這樣還是不太方便。可以新建一個文件,如screenshot
  touch screenshot
  vim screenshot(如果沒有安裝vim,可以執(zhí)行sudo apt-get install vim進行安裝)
  輸入 scrot -s -e ‘mv $f ~/screenshots’(注:mv $f ~/screenshots命令兩邊為單引號)
  保存退出vim,然后 chmod u+x screenshot

  這樣就可以通過運行screenshot文件來執(zhí)行scrot了。或者可以通過建立軟鏈接來使用scrot。比如:在/usr/bin目錄下執(zhí)行sudo ln -s ~/screenshot scs。以后直接在終端里輸入scs即可用鼠標(biāo)截圖。

轉(zhuǎn)載于:https://my.oschina.net/hevakelcj/blog/176136

超強干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的CentOS安装scrot记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。