CentOS 5.5 下生成某个网页的缩略图-实战验证

目的是想在linux服务器端生成某个网页的缩略图。发现了一个开源的工具:CutyCapt。

系统:CentOS 5.5
官网: http://cutycapt.sourceforge.net/
依赖:QT  http://www.qtsoftware.com/

1. 安装 qt  qtwebkit

默认yum的是qt3及qt4.2 不带qtwebkit的,想用qtwebkit要装更高的版本,就需要重新更改yum配置
导入 ATrpms’ signing key(导入Key),执行
# rpm --import  http://packages.atrpms.net/RPM-GPG-KEY.atrpms

旧版本rpm不能导入
可以用
# wget  http://packages.atrpms.net/RPM-GPG-KEY.atrpms
# rpm --import RPM-GPG-KEY.atrpms
备份原来的源
# cp /etc/yum.conf /etc/yum.conf.bak

修改yum.conf
# vi /etc/yum.conf 
如果要装qtwebkit要装更高的版本 的在下面加上
#########################################
[atrpms]
name=Fedora Core $releasever - $basearch - ATrpms
baseurl= http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
gpgkey= http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1

=====================================================================================
如果要装qt-47 的,改成以下, 进行网页截图的话 就改成一下这样
##########################################
[atrpms]
name=Fedora Core $releasever - $basearch - ATrpms
baseurl= http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing
gpgkey= http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1

# :wq保存退出

# yum list | grep qt47
可以发现atrpms里面有qt47了

安装
# yum install qt47 qt47-webkit qt47-webkit-devel qt47-x11 qt47-sqlite

安装gcc-c++
# yum install gcc-c++

环境变量配置
修改 /etc/profile
# vi /etc/profile
加入
export QTDIR=/usr/lib64/qt47
##export QTLIB=/usr/lib64/qt47/lib  在真实实验中,没有发现/lib 和 /include包,所以也就不需要配置了
##export QTINC=/usr/lib64/qt47/include
##export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH
保存退出后,运行一次该文件
#source /etc/profile
输入qmake有显示成功配置qt

2. 安装 cutycapt

# svn co  https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
# mv cutycapt/CutyCapt /usr/local/CutyCapt
# cd /usr/local/CutyCapt
# qmake
# make
出现以下错误 
/usr/lib64/qt47/libQtWebKit.so: undefined reference to `sqlite3_prepare16_v2'
/usr/lib64/qt47/libQtWebKit.so: undefined reference to `sqlite3_column_value'
collect2: ld returned 1 exit status
make: *** [CutyCapt] Error 1

解决:
#yum update sqlite

再次执行
# make
以下表示make成功
[root@localhost CutyCapt]# make
g++ -Wl,-O1 -o CutyCapt CutyCapt.o moc_CutyCapt.o    -L/usr/lib64/qt47 -lQtWebKit -lQtSvg -L/usr/lib64/qt47 -lQtGui -lQtNetwork -lQtCore -lpthread 

如出现
/usr/local/CutyCapt/CutyCapt: /usr/local/lib/libpng12.so.0: no version information available (required by /usr/lib64/qt47/libQtGui.so.4)
解决方法
cd /usr/local/lib
sudo mv libpng12.so.0 libpng12.so.0.backup
sudo ln -sf /usr/lib/libpng12.so.0 libpng12.so.0
这样就OK了.

3. 安装模拟 x-server 服务端

wget  http://www.flexthinker.com/wp-content/uploads/2009/11/xvfb-run.sh.txt
mv ./xvfb-run.sh.txt /usr/local/CutyCapt/xvfb-run.sh
chmod u+x /usr/local/CutyCapt/xvfb-run.sh

4. 开始欢快的截图吧

/usr/local/CutyCapt/xvfb-run.sh --server-args="-screen 0, 1024x768x24" /usr/local/CutyCapt/CutyCapt --url= http://www.163.com --out=163.jpg
或执行
xvfb-run --server-args="-screen 0, 1024x768x24" ./CutyCapt --url= http://www.baidu.com/ --out=localfile1.png --body-string=utf-8

出现-bash: xvfb-run: command not found 或  xauth : command not found
安装
# yum install Xorg Xvfb xauth xorg-x11-fonts*
等一会见到生成了localfile1.png表示成功了

5. 如果看不到汉字或乱码,需要安装chinese字体

# yum install fonts-chinese

6. 由于截屏的是整个网站的页面,只需要第一屏幕

convert -crop 1024x768+0+0 163.jpg 1632.jpg

7 . 缩小图片

convert -resize 40%x40% 1632.jpg 1632.jpg

参考URL:
http://leyewen.blog.163.com/blog/static/25060614201212324052743/
http://blog.163.com/bqj123@126/blog/static/28351334201091955030355/
http://www.2cto.com/os/201203/122079.html
http://www.2cto.com/os/201203/122079.html

你可能感兴趣的:(CentOS 5.5 下生成某个网页的缩略图-实战验证)