shell脚本获取网页快照并生成缩略图
获取网页快照并生成缩略图可分两步进行: 1、获取网页快照 2、生成缩略图 获取网页快照这里我们用?phantomjs 来实现。关于?phantomjs 的详细用法可参考。 1、安装我的环境是CentOS6.5,安装时直接下载 tarball 然后解压即可。 # https:
-jxvf phantomjs-.-linux-i686.<span style="color: #0000ff;">cp phantomjs-<span style="color: #800080;">1.9.<span style="color: #800080;">8-linux-i686/bin/phantomjs /bin/phantomjs
第二步中解压后bin目录下的 phantomjs 二进制文件即是可调用命令。 第三步是为了在以后调用命令时不必输入命令全路径。 2、调用phantomjs的调用需要一个js脚本。这个js脚本接收两个参数,分别是网址url和快照文件名称filename,脚本snap.js内容如下: <span style="color: #0000ff;">var page = require('webpage'<span style="color: #000000;">).create();<span style="color: #0000ff;">var args = require('system'<span style="color: #000000;">).args; <span style="color: #0000ff;">var pageW = 1024<span style="color: #000000;">; page.viewportSize =<span style="color: #000000;"> { <span style="color: #0000ff;">var url = args[1<span style="color: #000000;">]; 在这个脚本中还有个小小的设置,就是设置打开页面的浏览器可视区域的大小为1024*768,然后取第一屏内容。 调用命令如下: phantomjs snap.js http:
注意:这里执行命令的用户需要对目录有写权限。 3、效果获取的截图如下: 生成缩略图生成缩略图用的是工具,ImageMagick是个非常强大的图片处理工具,可对图片进行转化(格式转换、缩放、剪切、模糊、反转等)、屏幕截图、图片显示等,详细用法可参考 ? 一文。 1、安装redhat系列可使用yum安装: # ImageMagick ImageMagick-devel
其他平台安装请参考官方网站:,根据你的系统选择相应的包或自己编译源码。 2、调用我们这里只使用图片缩放工具,语法为: convert -resize 32 baidu.png baidu_thumbnail.png
默认是按比率缩放,如果要强制缩放,可以在尺寸后面加感叹号: convert -resize 32! baidu.png baidu_thumbnail.png
3、效果生成的缩略图如下: 整合脚本如果希望将上两步自动化,可以写一个shell脚本实现: # !/bin/
# example: createsnap. http:
=$IMAGE_NAME=$<span style="color: #800080;">2<span style="color: #000000;">
SNAPSHOT_NAME =<span style="color: #800000;">"<span style="color: #800000;">${IMAGE_NAME}.png<span style="color: #800000;">"<span style="color: #000000;">THUMBNAIL_NAME =<span style="color: #800000;">"<span style="color: #800000;">${IMAGE_NAME}_thumbnail.png<span style="color: #800000;">"<span style="color: #000000;">phantomjs snap.js $URL $SNAPSHOT_NAME convert -resize 32<span style="color: #800080;">0x240<span style="color: #000000;"> $SNAPSHOT_NAME $THUMBNAIL_NAME exit <span style="color: #800080;">0 参考文档1、 2、 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- python-Dockerfile添加失败:未指定源文件
- angularjs – angular-meteor基于params找到MongoDb集合和返
- webservice 小例子
- 如何在OSX 10.8中的用户bash_profile中设置多个PATH?
- bash – 如何获取文件夹中的文件数量作为变量?
- 在AngularJS模板中测试对象是否为空对象
- angularjs – 如何告诉ui-bootstrap什么内容分页?
- scala – 如何对来自无限流的传入事件进行分组?
- angular – 错误:模块导出的意外值’undefined’
- 3.1、Bootstrap V4自学之路------内容---重启和版面设计