linux shell 生成图片,shell脚本获取网页快照并生成缩略图
获取网页快照并生成缩略图可分两步进行:
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脚本获取网页快照并生成缩略图相关推荐
- linux 获取网站预览图,Shell脚本实现获取网页快照并生成缩略图 -电脑资料
这篇文章主要介绍了Shell脚本实现获取网页快照并生成缩略图,本文获取网页快照使用phantomjs.生成缩略图使用ImageMagick,需要的朋友可以参考下 获取网页快照并生成缩略图可分两步进行: ...
- linux脚本截取网页信息,Shell脚本实现获取网页快照并生成缩略图
获取网页快照并生成缩略图可分两步进行: 1.获取网页快照 2.生成缩略图 获取网页快照 这里我们用 phantomjs 来实现.关于 phantomjs 的详细用法可参考官方网站.http://pha ...
- asp html 生成图片,asp无组件上传图片并生成缩略图
先创建一文件夹,并创建虚拟目录或站长点. 1.增加上传页xAdd.html 无组件上传 "POST"name="myform"action="xSav ...
- Linux中 shell 脚本获取当前工作目录的方法
Linux中 shell 脚本获取当前工作目录的方法 1. 示例 2. 注意: 参考: 1. 示例 test.sh target_dir=$(cd $(dirname $0); pwd) echo $ ...
- linux脚本获取当前用户,bash shell 获取当前正在执行脚本的绝对路径
一般我们写Shell脚本的时候,都倾向使用绝对路径,这样无论脚本在什么目录执行,都应该起到相同的效果,但是有些时候,我们设计一个软件包中的工具脚本,可能使用相对路径更加灵活一点,因为你不知道用户会在哪 ...
- linux 脚本 获取pid,Shell脚本中获取进程ID的方法
提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将she ...
- linux 定时执行搅拌,Linux上定时shell脚本
本文主要介绍在Linux系统上部署定时器,定时执行shell脚本,通过脚本执行sql文件 sql文件 -- 创建表 create table if not exists iot_test.iot_ta ...
- linux怎么测试一个脚本,一个Linux中用于监控的简易shell脚本
系统管理员的任务真的很艰难,因为他/她必须监控服务器.用户.日志,还得创建备份,等等等等.对于大多数重复性的任务,大多数管理员都会写一个自动化脚本来日复一日地重复这些任务.这里,我们已经写了一个she ...
- linux下的shell脚本(基本)
2019独角兽企业重金招聘Python工程师标准>>> Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,常见的脚本解释器有: bash:是Linux标准默认的shell ...
最新文章
- notability怎么用_红茶丨如何用ipad提高你的西语学习效率
- 基于 react, redux 最佳实践构建的 2048
- java与flex通信_Flex与Java通信教程
- 2019-2020年度总结
- SpringMVC转发和重定向
- tomcat CATALINA_HOME与CATALINA_BASE的区别
- javascript Math object
- 调用import win32com.client出错的解决办法
- LaTeX中的魔法注释
- 用excel制作双层饼图_Excel 怎么用环形图制作双层饼图,excle饼状图图的制作
- 乐虎 尖叫_如果您想更快地尖叫! 为什么政府技术需要(很多)更好的治理
- 拉勾网的职位信息爬取(详细)
- About The Idea Of Flipped
- yocs_velocity_smoother速度平滑库知识
- presentation视频录制与编辑
- POJO、Java Bean是如何定义的
- Python3中小括号()、中括号[]、花括号{}的区别
- android中实现更溜的字母导航索引
- 10-1-2 数据结构与算法高级(下)
- Debug-PC之开山老祖[转]