获取网页快照并生成缩略图可分两步进行:

1、获取网页快照

获取网页快照

这里我们用 phantomjs 来实现。关于 phantomjs 的详细用法可参考。

1、安装

我的环境是CentOS6.5,安装时直接下载 tarball 然后解压即可。

# https:-jxvf phantomjs-.-linux-i686.cp phantomjs-1.9.8-linux-i686/bin/phantomjs /bin/phantomjs

第二步中解压后bin目录下的 phantomjs 二进制文件即是可调用命令。

第三步是为了在以后调用命令时不必输入命令全路径。

2、调用

phantomjs的调用需要一个js脚本。这个js脚本接收两个参数,分别是网址url和快照文件名称filename,脚本snap.js内容如下:

var page = require('webpage').create();var args = require('system').args;

var pageW = 1024;

var pageH = 768;

page.viewportSize = {

width: pageW,height: pageH

};

var url = args[1];

var filename = args[2];

page.open(url,function (status) {

if (status !== 'success') {

console.log('Unable to load ' + url + ' !');

phantom.exit();

} else {

window.setTimeout(function () {

page.clipRect = { left: 0,top: 0,width: pageW,height: pageH };

page.render(filename);

console.log('finish:',filename);

phantom.exit();

},1000);

}

});

在这个脚本中还有个小小的设置,就是设置打开页面的浏览器可视区域的大小为1024*768,然后取第一屏内容。

调用命令如下:

phantomjs snap.js http:

注意:这里执行命令的用户需要对目录有写权限。

3、效果

获取的截图如下:

生成缩略图

生成缩略图用的是工具,ImageMagick是个非常强大的图片处理工具,可对图片进行转化(格式转换、缩放、剪切、模糊、反转等)、屏幕截图、图片显示等,详细用法可参考  一文。

1、安装

redhat系列可使用yum安装:

# ImageMagick ImageMagick-devel

2、调用

我们这里只使用图片缩放工具,语法为:

convert -resize 32baidu.png baidu_thumbnail.png

默认是按比率缩放,如果要强制缩放,可以在尺寸后面加感叹号:

convert -resize 32! baidu.png baidu_thumbnail.png

3、效果

整合脚本

如果希望将上两步自动化,可以写一个shell脚本实现:

# !/bin/# example: createsnap.http:=$IMAGE_NAME=$2

SNAPSHOT_NAME="${IMAGE_NAME}.png"

THUMBNAIL_NAME="${IMAGE_NAME}_thumbnail.png"

phantomjs snap.js $URL $SNAPSHOT_NAME

convert -resize 320x240 $SNAPSHOT_NAME $THUMBNAIL_NAME

exit 0

参考文档

1、

2、

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

linux shell 生成图片,shell脚本获取网页快照并生成缩略图相关推荐

  1. linux 获取网站预览图,Shell脚本实现获取网页快照并生成缩略图 -电脑资料

    这篇文章主要介绍了Shell脚本实现获取网页快照并生成缩略图,本文获取网页快照使用phantomjs.生成缩略图使用ImageMagick,需要的朋友可以参考下 获取网页快照并生成缩略图可分两步进行: ...

  2. linux脚本截取网页信息,Shell脚本实现获取网页快照并生成缩略图

    获取网页快照并生成缩略图可分两步进行: 1.获取网页快照 2.生成缩略图 获取网页快照 这里我们用 phantomjs 来实现.关于 phantomjs 的详细用法可参考官方网站.http://pha ...

  3. asp html 生成图片,asp无组件上传图片并生成缩略图

    先创建一文件夹,并创建虚拟目录或站长点. 1.增加上传页xAdd.html 无组件上传 "POST"name="myform"action="xSav ...

  4. Linux中 shell 脚本获取当前工作目录的方法

    Linux中 shell 脚本获取当前工作目录的方法 1. 示例 2. 注意: 参考: 1. 示例 test.sh target_dir=$(cd $(dirname $0); pwd) echo $ ...

  5. linux脚本获取当前用户,bash shell 获取当前正在执行脚本的绝对路径

    一般我们写Shell脚本的时候,都倾向使用绝对路径,这样无论脚本在什么目录执行,都应该起到相同的效果,但是有些时候,我们设计一个软件包中的工具脚本,可能使用相对路径更加灵活一点,因为你不知道用户会在哪 ...

  6. linux 脚本 获取pid,Shell脚本中获取进程ID的方法

    提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将she ...

  7. linux 定时执行搅拌,Linux上定时shell脚本

    本文主要介绍在Linux系统上部署定时器,定时执行shell脚本,通过脚本执行sql文件 sql文件 -- 创建表 create table if not exists iot_test.iot_ta ...

  8. linux怎么测试一个脚本,一个Linux中用于监控的简易shell脚本

    系统管理员的任务真的很艰难,因为他/她必须监控服务器.用户.日志,还得创建备份,等等等等.对于大多数重复性的任务,大多数管理员都会写一个自动化脚本来日复一日地重复这些任务.这里,我们已经写了一个she ...

  9. linux下的shell脚本(基本)

    2019独角兽企业重金招聘Python工程师标准>>> Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,常见的脚本解释器有: bash:是Linux标准默认的shell ...

最新文章

  1. notability怎么用_红茶丨如何用ipad提高你的西语学习效率
  2. 基于 react, redux 最佳实践构建的 2048
  3. java与flex通信_Flex与Java通信教程
  4. 2019-2020年度总结
  5. SpringMVC转发和重定向
  6. tomcat CATALINA_HOME与CATALINA_BASE的区别
  7. javascript Math object
  8. 调用import win32com.client出错的解决办法
  9. LaTeX中的魔法注释
  10. 用excel制作双层饼图_Excel 怎么用环形图制作双层饼图,excle饼状图图的制作
  11. 乐虎 尖叫_如果您想更快地尖叫! 为什么政府技术需要(很多)更好的治理
  12. 拉勾网的职位信息爬取(详细)
  13. About The Idea Of Flipped
  14. yocs_velocity_smoother速度平滑库知识
  15. presentation视频录制与编辑
  16. POJO、Java Bean是如何定义的
  17. Python3中小括号()、中括号[]、花括号{}的区别
  18. android中实现更溜的字母导航索引
  19. 10-1-2 数据结构与算法高级(下)
  20. Debug-PC之开山老祖[转]

热门文章

  1. 杜比(dolby)自动关闭,windows10声音自动变小
  2. 【读书札记】SQL笛卡尔积的运用
  3. 新垣结衣自拍照_仅使用代码创建自拍照
  4. 基于聚宽数据JQData的沪深300股指期货贴水现象简析
  5. 转载:自动驾驶之软件定义汽车
  6. php excel导出数据空白,为什么 PHPexecl 导出的表格下面是一片空白?
  7. excel隐藏列显示列操作
  8. 【办公自动化】批量生成文件夹乱码解决方案
  9. sql两张表关联按表日期取最近
  10. 「面试」到阿里第五轮后我才知道所谓的URL是什么