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

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

Отлично. Первое-же пожелание — добавить web-интерфейс. Чтобы можно было скриптом с параметрами обращаться к программе для получения скрина.
А какой браузерный движок использует приложение? MSIE? Нет ли планов сделать возможность выборить движок для рендера страниц?
Спасибо за приложение, возможность выбрать разрешение очень полезная функция х)
Используется стандартный элемент управления WebBrowser, которые является аналогом IE. Как вариант решения, необходимо добавить возможность выбора операционной системы и браузера, которым мы хотим «просматривать» страницу.

Программно это можно сделать, задав для WebClient UserAgent:

WebClient client = new WebClient();
client.Headers.Add(«user-agent», «Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)»);

В данном случае заходим рендеринг будет осуществляться для FireFox.
Рендеринг ведь происходит на клиенте. И мало зависит от того, какой вы хидер отдадите.
Просто сайт в ответ на этот хидер может отдать разметку, специфичную для Firefox. Так что «рендеринг НЕ будет осуществляться для FireFox.»
Спасибо за уточнение, я не точно выразился. Рендеринг будет осуществляться на базе ИЕ, но специфичный для FireFox UserAgent.
Вопрос то как раз в том, чтобы можно было выбрать на базе какого движка делать рендер страницы (Trident/Gecko/WebKit)
Про интеграцию WebKit я предоставлял недавно ссылку на проект WPF Browser — использование данного движка в .net — habrahabr.ru/blogs/net/68066/
Вообще вы молодец, но позвольте пару замечаний, которые, надеюсь, разовьют ваш проект дальше:
а) Делайте скриншот страницы в отдельном потоке, например с помощью BackgrondWorker, ну и соответственно в библиотеке сделайте возможность запускать это асинхронно.
б) Подредактируйте немного интерфейс. После ввода url хотелось бы по нажатию Enter получать картинку, и вообще отыскать кнопку в Toolbar'e не так уж и просто, сделайте лучше здоровую кнопку «Поехали» :)
в) если ввести адрес, что то вроде habrahabr.ru, то хотелось бы, чтобы автоматом подставлялось http.
г) Обратите внимание на вывод ошибок (вызовите ее при помощи пункта (в)) — вы явно перепутали где title а где текст сообщения.
д) А это в долгий ящик — может быть все таки просматривать страницу, потому как бывают всякие flash и silverlight на которых нужно еще что то нажать, чтобы увидеть именно тот View который вам нужен.

P.S. Красивый и грамотный код, за что вам спасибо, и удачи в развитии проекта!
Спасибо за ваш отзыв и замечания! Обязательно учту.
И еще в Win7 (у меня x64) после того как сделаешь граб и закроешь вылазит Program Compatibility Assistant — «This program requires flash.ocx, which is no longer included in this version of Window». Это скорее всего из-за WebBrowser но может как то можно побороть.
Простите, а кто такие вылазиты и зачем их закрывать? Новая фича Windows 7? :)
:) редактировал приложение перед отправкой и не поставил запятую.
«как сделаешь граб и закроешь программу, появляется Program Compatibility Assistant»
Еще добавлю что картинки сохраняются не в jpg, а в png… редактор ругается на неверный формат.
Саму программу ещё не смотрел. Позвольте замечание по тексту поста.

«Website Screenshots & Thumbnails Extractor — это Windows приложение, написанное на .NET Framework 3.5 и доступное с исходным кодом»
Эта фраза, идущая во главе текста и являющаяся определением, ничего не говорит о программе. А ведь именно здесь следовало бы кратко резюмировать суть программы.

Примеры можно найти в любой качественной статье из Википедии. Там отдельное внимание уделяется тому, чтобы в первом предложении дать супер-краткую суть; в первом абзаце — чуть более подброно; во введении описать основное; в статье описать всё, что нужно.
Собственно, у вас даже всё написано уже. Просто нужно местами поменять.

«Website Screenshots & Thumbnails Extractor — это Windows приложение для извлечения скриншотов и превьюшек сайтов».

А чуть ниже — «для работы требуется .NET Framework 3.5, программа доступна с исходным кодом».
Полностью с вами согласен, но мне кажется, что название программы говорит само за себя. В любом случае сейчас подправлю. Спасибо.
В принципе, да. Название подробное и говорит само за себя. Но оно всё же на английском, да и мало ли что могут значить слова в названии.
А как по мне в шапке и вмсесте с описанием возможностей и названием все становится понятно. Так что мне кажется это несущественно. А сама утилита хорошо сделана, действительно хорошая работа.
Я просто придираюсь, не мешайте. ;-)
« это Windows приложение для извлечения скриншотов и превьюшек сайтов с открытым исходным кодом» — плохо, т. к. создаётся ощущение, что для вашей программы подходят только сайты с открытым исходным кодом. ;)
Будет лучше поменять порядок слов:
« это Windows приложение с открытым исходным кодом, предназначенное для извлечения скриншотов и превьюшек сайтов»

Чёрт, что на меня нашло — так привязался. ;) Простите уж, как-то прицепилось.
«Website Screenshots & Thumbnails Extractor — это Windows приложение с открытым исходным кодом для извлечения скриншотов и превьюшек сайтов.

Такой вариант должен понравиться :)
Использую fireshot как плагин к firefox. В базовой версии бесплатный, мне ее хватает. И никакого дотнета ставить не надо.
Да, но нужен firefox помоему это равноценно, тем более что такое приложение через клиентский профайл можно поставить и без дотНета
Не равноценно. Порядка 9 мб против 250 мб. И firefox у меня все равно установлен.
Чтобы сделать скриншот мне нужно всего лишь щелкнуть кнопочку в статусбаре firefox, когда я просматриваю сайт. Не нужно ничего запускать.
Я говорю вообще про клиентПрофайл когда ставить когда размер фремворка уменьшается до 25Мб, это реально. Во-вторых у многих он стоит по апдейту, в 7-ку вообще 3.5 версия установлена поумолчанию, в других версиях — другая версия фреймворка предустановлена

Это у вас стоит фаерфокс, у многих пользователей он не стоит.

Хотя в качестве плагина такая утилита лучше. Но по сути какая разница. Опять же не все используют фаерфокс
Ссылка не вставилась screenshot-program.com/fireshot/
Здесь проблема с валидацией ввода пользователя нужно добавлять автоматически хттп преффикс
чтобы было www.screenshot-program.com/fireshot/
А планируется ли порт на другие платформы? +) Ну или хотя бы аналоги есть?
буквально месяц назад на нашем проекте решали очень похожую задачу. Разница в том, что нам нужен был сервис, делающий скрин произвольного сайта. После часа гугления, я попробовал вариант с webbrowser, фактически ie. Вскрылось несколько проблем: иногда оно просто не могло отрендерить страницу, иногда падало с .net runtime error. Решением стало использование geckofx плюс рендеринг решено было производить в отдельном процессе, а не потоке, чтобы максимально обезопасить сам сервис.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории