Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2013, 12:08   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Вопрос TWebBrowser скрытно взять скриншот

Доброго времени суток!

Как сделать скриншот сайта в TWebBrowser, не показывая его(TWebBrowser) пользователю?
Человек_Борща вне форума Ответить с цитированием
Старый 05.10.2013, 12:41   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

А если показать на долю секунды?
Arigato вне форума Ответить с цитированием
Старый 07.10.2013, 01:32   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
А если показать на долю секунды?
это дикость.... в случае с 5000 ссылками получится аффект бабочки. Юзеры возненавидят.

Был вариант внедрять свой JS и вызывать DrawToDC, но оно уже вымерло ещё в 8 версиях IE, и потому будут проблемы. А кроссбраузерность мне ой как нужна))

Нашел более функциональное решение: PhantomJS.

Собстна самопальный сабж:
Код:
var page = require('webpage').create(),
    system = require('system'),
    address, outF, sX,sY;

if (system.args.length < 2) {
    console.log('Usage: makescr.js URL filename [sizeaX] [sizeY]');
    phantom.exit(1);
} else {
    address = system.args[1];
    outF = system.args[2];
	sX = system.args[3];
	if(!sX) {sX = 1024};
	sY = system.args[4];
	if(!sY) {sY = 768};
    page.viewportSize = { width: sX, height: sY };
	
    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('Unable to load the address!');
            phantom.exit();
        } else {
            window.setTimeout(function () {
                page.render(outF);
                phantom.exit();
            }, 200);
        }
    });
}
Пока не идеально, местами быдлокодинг, я все ещё учусь =)))
Делает битмапы, jpeg, png и даже PDF.

Работает очешуенно, JS - будущее. ИМХО. Надо бы ещё coffeescript глянуть...
Вообще ПО упаковано в UPX, в реальности весит что-то около 20 Мб, и если разжать, то работает ещё быстрее...

В общем мощная штука в умелых руках, но требует обязательного знания JavaScript или кофейных скриптов Так, на заметку+)

Последний раз редактировалось Человек_Борща; 07.10.2013 в 01:50.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать отступы в TWebBrowser? + аналоги TWebBrowser? FleXik Общие вопросы Delphi 4 19.07.2013 21:53
загрузка флеш игры каждый день скрытно muham33 Общие вопросы Delphi 3 24.12.2012 21:07
Скриншот DeathlessFalcon Общие вопросы Delphi 3 04.08.2012 21:27
Скриншот веб-страницы по URL без ее открытия в TWebBrowser. SkAndrew Общие вопросы Delphi 6 25.04.2010 21:08
Incompatible types: 'Unit1.TWebBrowser' and 'SHDocVw.TWebBrowser' simon15x Общие вопросы Delphi 0 10.04.2010 03:11