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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2010, 20:31   #1
Nub
Пользователь
 
Регистрация: 04.10.2010
Сообщений: 19
По умолчанию CopyRect, TBitmap и WebBrowser

В WebBrowser - страница на флеше. Нужно сделать скриншот части этой страницы по зададнным координатам и сохранить в файл в формате jpg.
(В этой части страницы captcha, которая затем будет отправлена на сервис antigate).

Есть процедура скриншотящая весь WebBrowser:
Код:
procedure TForm1.WebBrowserScreenShot(const wb: TWebBrowser;
  const fileName: TFileName);
var
viewObject : IViewObject;
r : TRect;
bitmap : TBitmap;
begin
if wb.Document <> nil then
begin
wb.Document.QueryInterface(IViewObject, viewObject) ;
if Assigned(viewObject) then
try
bitmap := TBitmap.Create;
try

r := Rect(0, 0, wb.Width, wb.Height) ;  //left, top, right, bottom
bitmap.Height := wb.Height;
bitmap.Width := wb.Width;

viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ;
with TJPEGImage.Create do
try
Assign(bitmap) ;
SaveToFile(fileName) ;
finally
Free;
end;
finally
bitmap.Free;
end;
finally
viewObject._Release;
end;
end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
WebBrowserScreenShot(WebBrowser1,'c:\WebBrowserImage.jpg') ;
end;
Знаю о существовании:
Код:
procedure CopyRect(const Dest: TRect; Canvas: TCanvas; const Source: TRect);
И её API аналога:
Код:
BitBlt(Image2.Canvas.Handle, Xd, Yd, Image1.Canvas.Handle, Xs, Ys, X1s, X2s, SRCCOPY);
Но заставить всё это богатство работать совместно - не удаётся.
Фактически - мне нужно сохранение в файл jpg указанной четырьмя точками области WebBrowser.
Nub вне форума Ответить с цитированием
Старый 05.10.2010, 21:46   #2
Nub
Пользователь
 
Регистрация: 04.10.2010
Сообщений: 19
По умолчанию

Возможно, следует уточнить. Нужно либо отредактировать приведённую продедуру (добавить вырезание нужного прямоугольника перед сохранением его в файл) либо редактировать уже успешно сохранённый скриншот. Может кто-то приведёт пример редактирования существующего файла?
Nub вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение Tbitmap Horus92 Помощь студентам 2 27.07.2010 10:05
Запутался с CopyRect Alex Cones Общие вопросы Delphi 2 01.12.2009 20:55
Canvas.CopyRect DELPHI Что и как... 08ekhiv1 Помощь студентам 1 09.06.2009 08:25
TBitmap и указатели Levsha100 Общие вопросы C/C++ 3 17.05.2009 22:36
TBitmap odi_noki Мультимедиа в Delphi 17 25.10.2008 09:53