【问题标题】:generate image (e.g. jpg) of a web page?生成网页的图像(例如 jpg)?
【发布时间】:2011-03-20 02:38:27
【问题描述】:

我想创建一个网页看起来像的图像, 例如创建 html + 图像的小缩略图。 它不必是完美的(例如 flash /javascript 渲染)。

我将调用在 linux 上使用代码,理想情况下是一些 java 库,但命令行工具也很酷。

有什么想法吗?

【问题讨论】:

标签: linux thumbnails webpage


【解决方案1】:

试试CutyCapt,一个命令行实用程序。它使用 Webkit 以各种格式(SVG、PNG 等)进行渲染和输出。

【讨论】:

  • 看起来不错,但我想要一个免费用于商业用途的解决方案
  • 实际上,我想我可能弄错了,我是否正确理解 CutyCapt + QT 可以免费用于商业用途,使用 LGPL 许可证? qt.nokia.com/products/licensing
  • 根据 CutyCapt 的源代码,它是许可证 GNU v2(参见 cutycapt.svn.sourceforge.net/viewvc/cutycapt/CutyCapt/…)。你不需要商业版的 QT 来使用 CutyCapt,所以你应该没问题。
  • CutyCapt 工作出色: aptitude install xvfb aptitude install qt4-dev-tools wget cutycapt.svn.sourceforge.net/viewvc/cutycapt/… mv CutyCapt.tar.gz\?view\=tar CutyCapt.tar.gz tar xfz CutyCapt.tar.gz cd CutyCapt qmake make 就是这样。干杯!
【解决方案2】:

【讨论】:

  • 这几乎不是编程解决方案。
  • 您查看过我提供的任何链接吗?有命令行选项,它们都可以在 linux 上运行,完全符合提问者的要求
  • 为链接欢呼,看起来有一些可能的解决方案。
【解决方案3】:

要使用 ImageMagick 在终端中截取屏幕截图,请在终端中键入以下行,然后在屏幕的某个部分上单击并拖动鼠标:

import MyScreenshot.png

要捕获整个屏幕并在延迟后调整大小,请使用以下命令:

import -window root -resize 400×300 -delay 200 screenshot.png 

您可以混合使用 xwininfoimport 来检索浏览器的窗口 id 并对该窗口进行截图。一个自动化这个过程的 bash 脚本是这样的:

#!/bin/bash
window_id=`xwininfo -tree -root | grep Mozilla | awk '{print $1}'`
import -window $window_id -resize 100x100 tumb.png

此脚本将在当前目录下创建一个 100x100 的 Firefox 屏幕截图,名称为 tumb.png

几个来源展示了如何从 Java 应用程序中运行 bash 脚本,谷歌可以帮助你。如果您赶时间,请查看thisthis

【讨论】:

  • 澄清一下,这将由独立软件(不是ui软件)调用...所以需要自动
  • 我编辑了上面的答案并添加了您正在寻找的信息。
【解决方案4】:

如果你对 Java 感兴趣,也许你可以看看使用 Selenium-RC http://seleniumhq.com 的浏览器自动化

这是一个可以安装在盒子上的小型 Java 服务器,程序本身将在 Web 浏览器中执行远程命令。

像这样的步骤(顺便说一下,这是伪代码,我用 php 编写 Selenium 代码,但我无法回忆起 100% 的细节)

selenium.location("http://foo.com")
selenium.open("/folder/sub/bar.html")
selenium.captureScreenshot("/tmp/" + this.getClass().getName() + "."
                               + testMethodName + ".png");

实际上,我只是对最后一个的确切语法进行了快速的网络搜索......而且这个人有一个博客,其中包含可能在 java 中实际工作的代码 :) https://dev.youdevise.com/YDBlog/index.php?title=capture_screenshots_of_selenium_browser_&more=1&c=1&tb=1&pb=1

还有许多网站提供“跨浏览器和操作系统”这项服务,我只是不记得它们是什么了。基本上,他们拥有每个操作系统和浏览器组合的云,他们使用每台机器登录,截取屏幕并将其存储在他们的网站上,供您在完成后几个小时内返回。

啊...另一个网络搜索,它是你的 :) http://browsershots.org/

【讨论】:

    【解决方案5】:

    看完这个页面后,我在想,让我启动 midori 浏览器:http://midori-browser.org/,当我尝试 -h 选项时,我看到了:

      -s, --snapshot      Take a snapshot of the specified URI
    

    QutyCapt 很难编译,并且有很多依赖项。 Midori的数量更少。它将网站的 PNG 输出到 TMP 文件夹中。可以通过以下方式获取文件:

    midori -s http://www.rcdwealth.com new.png 2>/dev/null | awk '{ print $4}'
    

    之后,可以使用 ImageMagick 的转换程序将文件转换为缩略图大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多