Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 789

•  TDictionary Custom Sort  5 902

•  Fast Watermark Sources  5 704

•  3D Designer  8 478

•  Sik Screen Capture  6 037

•  Patch Maker  6 482

•  Айболит (remote control)  6 474

•  ListBox Drag & Drop  5 338

•  Доска для игры Реверси  94 950

•  Графические эффекты  6 677

•  Рисование по маске  5 801

•  Перетаскивание изображений  4 862

•  Canvas Drawing  5 236

•  Рисование Луны  4 959

•  Поворот изображения  4 505

•  Рисование стержней  3 187

•  Paint on Shape  2 434

•  Генератор кроссвордов  3 308

•  Головоломка Paletto  2 619

•  Теорема Монжа об окружностях  3 403

•  Пазл Numbrix  2 249

•  Заборы и коммивояжеры  2 909

•  Игра HIP  1 879

•  Игра Go (Го)  1 795

•  Симулятор лифта  2 131

•  Программа укладки плитки  1 860

•  Генератор лабиринта  2 296

•  Проверка числового ввода  1 985

•  HEX View  2 294

•  Физический маятник  1 958

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Сохранить страницу TWebBrowser в Bitmap



Оформил: DeeCo

uses
   MSHTML_TLB, JPEG, ActiveX, ComObj;

 procedure generateJPEGfromBrowser(browser: iWebBrowser2; jpegFQFilename: string;
   srcHeight: Integer; srcWidth: Integer; tarHeight: Integer; tarWidth: Integer);
 var
   sourceDrawRect: TRect;
   targetDrawRect: TRect;
   sourceBitmap: TBitmap;
   targetBitmap: TBitmap;
   jpeg: TJPEGImage;
   viewObject: IViewObject;
 begin
   sourceBitmap := TBitmap.Create;
   targetBitmap := TBitmap.Create;
   jpeg := TJPEGImage.Create;
   try
     try
       sourceDrawRect := Rect(0, 0, srcWidth, srcHeight);
       sourceBitmap.Width  := srcWidth;
       sourceBitmap.Height := srcHeight;

       viewObject := browser as IViewObject;

       if viewObject = nil then
         Exit;

       OleCheck(viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Form1.Handle,
         sourceBitmap.Canvas.Handle, @sourceDrawRect, nil, nil, 0));

       // Resize the src bitmap to the target bitmap 
      targetDrawRect := Rect(0, 0, tarWidth, tarHeight);
       targetBitmap.Height := tarHeight;
       targetBitmap.Width  := tarWidth;
       targetBitmap.Canvas.StretchDraw(targetDrawRect, sourceBitmap);

       // Create a JPEG from the Bitmap and save it 
      jpeg.Assign(targetBitmap);

       jpeg.SaveToFile(jpegFQFilename);
     finally
       jpeg.Free;
       sourceBitmap.Free;
       targetBitmap.Free;
     end;
   except
     // Error Code 
  end;
 end;

 procedure TForm1.btnButton1Click(Sender: TObject);
 var
   IDoc1: IHTMLDocument2;
   Web: ShDocVW_TLB.IWebBrowser2;
   tmpX, tmpY: Integer;
 begin
   with WebBrowser1 do
   begin
     Document.QueryInterface(IHTMLDocument2, iDoc1);
     Web := ControlInterface;
     tmpX := Height;
     tmpY := Width;
     TControl(WebBrowser1).Visible := Boolean(0);
     Height := OleObject.Document.ParentWindow.Screen.Height;
     Width := OleObject.Document.ParentWindow.Screen.Width;
     generateJPEGfromBrowser(Web,'c:\test.jpg',Height, Width, Height, Width);
     Height := tmpX;
     Width := tmpY;
     TControl(WebBrowser1).Visible := Boolean(1);
   end;
 end;




Похожие по теме исходники

Bitmap Sharpen Filter

Simple Bitmap Rotation

Bitmap 32Bit Demo

Thread Bitmap (pencil drawings)

 



Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте