![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() В 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. |