Подтвердить что ты не робот

Как сделать снимок экрана с помощью Rails 3.1? - без использования услуги

Почти каждый ответ, который я нашел, использует некоторые существующие службы. Есть ли способ сделать это с помощью Rails 3.1 программно? Это было очень легко сделать с PHP (в этом есть готовые библиотеки на PHP).

Что я хочу сделать, учитывая URL-адрес, это:

  • Сделайте снимок экрана на веб-сайте

  • Обрезайте его (используйте только верхний левый самый 100x100 пикселей

PS. Вот моя среда: Rails 3.1, Ruby 1.9.2

Примечание.. Решение, вероятно, должно будет также выполнять любые перенаправления на URL.

Обновление:

4b9b3361

Ответ 1

Для этой задачи есть камень Rails.

 gem install selenium-webdriver

Простой вариант:

require 'selenium-webdriver'
 width = 1024
 height = 728
 driver = Selenium::WebDriver.for :firefox
 driver.navigate.to 'http://domain.com'
 driver.execute_script %Q{
   window.resizeTo(#{width}, #{height});
 }
 driver.save_screenshot('/tmp/screenshot.png')
 driver.quit

Ответ 3

Простое, , но только Mac решение кажется http://www.paulhammond.org/webkit2png/

Просто chmod -x, который script и используется как python webkit2png http://www.google.com/, и он создает 3 файла:

  • Полный снимок экрана
  • Миниатюра верхней части сайта.
  • Эскиз полного скриншота

Ответ 4

Вы можете использовать wkhtmltoimage для загрузки веб-страницы и сохранения ее как изображения, затем imagemagick (или одного из рубиновых оберток для нее), чтобы обрезать ее.

wkhtmltoimage www.google.com output.jpg
convert -crop 100x100+0+100 output.jpg cropped.jpg

Для OSX нет предварительно построенного двоичного файла wkhtmltoimage, поэтому, возможно, вы захотите вместо этого использовать wkhtmltopdf, а затем imagemagick для преобразования в изображение.

wkthmltopdf www.google.com output.pdf
convert -crop 100x100+0+100 output.pdf cropped.jpg