linux - 使用命令行从多个 HTML 页面创建动画 gif

标签 linux qt image-processing command-line

好吧,这可能是一个复杂的问题。在得到建议之后。我想创建一个可以从命令行运行的脚本,该脚本将获取 HTML 页面列表并将它们转换为动画 gif(按照我提供的顺序)。速度是一个考虑因素,但在这个阶段,欢迎任何冗长的想法。

出于测试目的,我的 HTML 页面是:

最佳答案

您的意思是在捕获页面时首先在浏览器中呈现页面?

(编辑:来自评论,显然不是) 看看http://phantomjs.org/screen-capture.html
我无法让它与您的页面一起使用,但我认为您可以。
它与其他网站(如 stackexchange)配合良好。 此外,有时 BBC 对来自澳大利亚的请求有点好笑......

我下载了 64 位 Linux 版本,解压了它,并尝试使用这个 super 基本的脚本。

hello.js

console.log('Start ...');

var page = require('webpage').create();
page.open('http://www.stackoverflow.com', function(status) {
  console.log("Status: " + status);
  if(status === "success") {
    page.render('example.png');
  }
  phantom.exit();
});

我使用运行调试器的选项启动它(在 Chrome 中可见),但之后我放弃了。

phantomjs-2.1.1-linux-x86_64/bin/phantomjs --remote-debugger-port=9000 --remote-debugger-autorun=yes hello.js

我将在此处保留原始答案,以帮助可能想要在桌面上执行此操作的人以及动画 gif 转换。

对于从 GUI 桌面捕获:

  • 从命令行捕获屏幕截图
  • 远程控制浏览器
  • 处理图像

然后就是在脚本中安排正确的时间。虽然“速度是一个考虑因素”,但我们是在说秒还是分?

粗略的例子:
安装'scrot '作为屏幕抓取器

apt-get install scrot

imagemagick / convert可能已经安装?

apt-get install imagemagick

最大化你的默认浏览器

运行这个:

#!/usr/bin/env python
import time
from subprocess import Popen


wobpages = ['http://www.bbc.co.uk/sport','http://www.bbc.co.uk/news','http://www.bbc.co.uk/weather']
x =1
for page in wobpages:
    Popen(["xdg-open", page])
    time.sleep(8)
    img = 'wobpage%s.png' % x
    Popen(["scrot", img])
    x += 1
opt = "convert -delay 100 -loop 0 *.png animation.gif"
Popen(['/bin/sh', '-c', opt])

关于linux - 使用命令行从多个 HTML 页面创建动画 gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511074/

相关文章:

c# - 使用 Emgucv 比较两个图像

c++ - 二值图像角点检测

linux - 在 linux/unix 中从链接下载图像作为 csv 文件中的列值

python - Phonon:视频播放后如何清屏

c++ - Qt 电子邮件输入小部件

c++ - 从 QGridLayout 中删除边框

opencv - HOG预处理标准化

c - 如何拼接/dev/mem?

c++ - arduino到树莓派串行通信

c - fatal error : linux/delay. h:没有那个文件或目录