Как стать автором
Обновить

Комментарии 34

А ваша реализация умеет снимать скриншоты во всю высоту страницы, а не только высотой в экран?
Не умеет, нам это не нужно.

Если бы делали, то, видимо, скроллили js-ом страницу и каждый раз посылали бы сигнал на скриншот. Потом сшивали бы.
Фишка своего решения в том, что его можно подкрутить как угодно :)
Это понятно. Но, например, решение на CutyCapt тоже можно подкрутить — есть исходники на Сях. Снимает страницу целиком и на порядок быстрее чем любая другая реализация, которая мне знакома. Из явных минусов только отсутствие поддержки флеша. Ваша реализация подходит в вашем конкретном случае, но если «подкрутить» перемотку страницы и склейку — это займет еще больше времени и ресурсов, а значит в тех задачах где это критично подобное решение не подойдет. В общем, есть еще куда стремиться в создание идеального и универсального решения ;)
У Фантома тоже исходники доступны, но вот про его надежность я отписался. CutyCapt не пробовали, но концептуально они похожи, насколько я понимаю, так что я подозреваю такие же проблемы :)

Ну а в вообще, да, конечно, случаи и границы применимости они разные бывают :)
Как это нет поддержки флеша?) У меня скринит. Главное не забыть поставить флешплагин в систему и кутикапт указывать ключик при запуске — плагинс-энаблед или как то так, точнее не могу упомнить.
Это все черная магия, пример с тем же фантомом и нашим самописным решением на Qt тому подтверждение.

Ну, может быть, именно в CutyCapt все прекрасно и никогда не глючит, я не могу утверждать :)
CutyCapt прекрасно работает с flash, просто поставьте адобовский плагин по инструкции. Там есть один момент — надо как-то эмпирически подбирать время для загрузки сайта, иначе вместо отдельных флеш-блоков могут быть пустые квадратики. Хотя. это может быть от того, что я деалал всю схему на относительно медленной машине и на хорошей железке все будет летать.
А, кстати, ещё можно создать виртуальный экран невероятной высоты. Но будут проблемы, если body высотой 100%, и что-нибудь привязано ко дну страницы, или просто есть фон по всей высоте (просто белизну довольно легко распознать и отрезать).
Заказал скриншот нашей морды — ждал 40 секунд, получил белое поле… С другой стороны, страничка ютьюба наугад была готова через пять секунд, флеш виден.

На самом деле, когда речь идет о важной фиче, тем более что-то такое про реалтайм, надо иметь над ней контроль. Не обязательно «надо сделать самим», но исходники точно хочется.
Но это же десктопное приложение, а нам нужно было серверное автоматизированное.

Можно, конечно, запустить в Xvfb Wine, и там запускать приложение и манипулировать мышью/клавиатурой, но… :)

Кстати, советую clip2net, скриншот экрана в два клика (надо чуть настроить, кажется, изначально больше). Аналогов по этому критерию не видел. Порисовать, написать текст — можно.
У меня clip2net и ScreenPresso в паре работают.
Когда нужен быстрый скриншот — конечно clip2net :)
Аналог clip2net — floomby, но он какой-то странный.
клиптунет очень хороший (все остальное так себе), но в последнее время он не стабилен, из-за нагрузок. нас такой вариант не устраивает
у вашего проблемы с antialiasing
Про ФФ в статье написано. И вроде это расширение тоже требует интерактивности, мы на него смотрели года полтора назад.
Селениум у нас в другом месте используется, а тут вроде как и незачем, открыть нужный урл проще через командную строку, и у расширения минимальный оверхед. Селениум же жрал бы ещё себе памяти и усложнял конструкцию.

На самом деле, было бы прекрасно, если бы таки прямо captureVisibleTab делал скрин всего, что видно на экране… Очень удобно — он делает скрин в формате data-uri, можно аяксом куда угодно отправить.
у меня у одного такое чувство, что эта статья уже была на хабре?
судя по описанию прекрасная штука, но совсем про другое.
Возможно более простым и надежным было бы написать свое xul приложение и запускать его через firefox для того что бы сохранились все его настройки xulrunner. Приложение вышло бы на 50 строк js кода, за то не пришлось бы делать снимок из фреймбуффера.
В xulrunner доступен метод drawWindow
Фактически это должно полностью решить проблемы битых скриншотов, и одновременно дать полный доступ к DOM и JS показываемого сайта. Можно подписыватся на любые события, модифицировать сайт — например вырезать\затенять рекламу и тд.
Спасибо, я посмотрю :)

Но, боюсь, мы уже сели на крючок — работает хорошо, грабли отмечены флажками, нужды менять нет. Но все равно интересно!
Когда мне понадобилось сделать скриншот всей страницы, я побродил, поискал, не нашел, да и написал маленькую программу Page to Image для Mac OS. Умеет делать скриншот в полный рост на WebKit при 1024х768. Никаких доп. функций, написал и забыл. Прошу хабросообщество не минусовать; не ради пиара, вдруг кому полезно будет. Программа бесплатная.
QT Embedded Webkit отлично справляется с задачей, и довольно много библиотек, для примера github.com/csquared/IMGKit
Выкладываю у вас ссылки на один и тот же сайт — скриншоты то делаются, то не делаются. На некоторых первых ссылках до сих пор лоадбар крутится.
можно примеры?
спасибо
Да, очень нужно. Мы сами, конечно, постоянно пользуемся собой же, и если в лентах видим пустые места, реагируем. А тут вон оно чо деется-то за нашей спиной…
Мы вроде как все починили. Кажется, слишком много обработчиков на одной машине запускали, хромы иногда втупляли)
Вижу. Теперь штуки 4 всего не работает и новые скрины стали быстрее делаться.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.