создать изображение (например, JPG) веб-страницы? - PullRequest
16 голосов
/ 23 июля 2010

Я хочу создать изображение, как выглядит веб-страница, например создать небольшой эскиз HTML + изображения. оно не обязательно должно быть идеальным (например, рендеринг flash / javascript).

Я назову использовать код на linux, в идеале это будет некоторая библиотека java, но инструмент командной строки тоже подойдет

есть идеи?

Ответы [ 5 ]

12 голосов
/ 23 июля 2010

Попробуйте CutyCapt , утилита командной строки.Он использует Webkit для рендеринга и вывода в различных форматах (SVG, PNG и т. Д.).

2 голосов
/ 23 июля 2010

Вы можете получить его почти идеально, и кроссплатформенно, используя плагин для браузера.

BrowserShots - проект с открытым исходным кодом, в котором может содержаться код, который вы можете использовать.

также см .:

1 голос
/ 23 июля 2010

Чтобы сделать снимок экрана в терминале с помощью ImageMagick, введите следующую строку в терминал, а затем щелкните и перетащите мышь над частью экрана:

import MyScreenshot.png

Чтобы захватить весь экран и после некоторой задержки и изменить его размер, используйте следующую команду:

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

Вы можете использовать комбинацию xwininfo и import , чтобы получить идентификатор окна браузера и сделать скриншот этого окна. Сценарий bash для автоматизации этого процесса будет выглядеть примерно так:

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

Этот скрипт создаст скриншот Firefox размером 100x100 в текущем каталоге с именем tumb.png

В нескольких источниках показано, как запустить bash-скрипт из приложения Java, Google может помочь вам в этом. Если вы спешите, отметьте это и это .

0 голосов
/ 02 мая 2016

После прочтения этой страницы я подумал, что мне нужно запустить браузер midori: http://midori -browser.org / и когда я попробовал параметр -h, я увидел:

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

QutyCapt сложен для компиляции и имеет много зависимостей. У Мидори это меньше. Он выводит PNG сайта в папку TMP. Можно получить файл с:

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

После этого файл можно преобразовать в размер миниатюр с помощью программы преобразования ImageMagick.

0 голосов
/ 23 июля 2010

Если вам интересна Java, возможно, вы могли бы взглянуть на автоматизацию браузера с помощью Selenium-RC http://seleniumhq.com

Это небольшой java-сервер, который вы можете установить на коробку и саму программубудет выполнять удаленные команды в веб-браузере.

Подобные шаги (кстати, это псевдокод, я кодирую свой Selenium в php, и я не могу вспомнить 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/

...