2016-01-11 7 views
2

Я не смог найти правильный способ получить изображение загруженного документа в tchromium vcl control в форме.Как получить снимок экрана с загруженным программным обеспечением tchromium?

ищет способ получения документа в виде растрового изображения файла или потока. delphi/tchromium component

+0

Есть много примеров коды вокруг этого шоу, как делать скриншоты –

+0

программно на delphi? просто нет частичного нечувствительного к регистру слова, а именно «изображение», «захват» или «растровое изображение» во всех источниках хрома vcl или его демо. –

+0

думаю ответ невозможно. «это еще не возможно в CEF3, необходимые функции API были удалены в CEF3» –

ответ

0

Функция сохранения изображения в DCEF3.but cef-r2.31 имеет его.

procedure Tfmmain.Button1Click(Sender: TObject); 
var 
    lol:TPicture; 
begin 
    lol:=TPicture.Create; 
    Chromium1.Browser.GetBitmap(PET_VIEW,lol.Bitmap); 
    lol.SaveToFile('c:\lol.bmp'); 
    lol.Free; 
    lol:=nil; 
end; 
1

TChromium наследует TWinControl, таким образом, у него есть РУЧКА, которая может использоваться с BitBlt, чтобы получить «Снимок экрана» указанного компонента. This article почти все охватывает все.

0

Я думаю, что будет проще сделать снимок всего экрана приложения. Попробуйте это:

function screenshot: boolean; 
var 
    Bild : TBitmap; 
    jpg : tjpegimage; 
    c: TCanvas; 
    r: TRect; 
begin 
try 
    c := TCanvas.Create; 
    bild := tbitmap.Create; 
    c.Handle := GetWindowDC(GetDesktopWindow); 
    try 
    r := Rect(0, 0, Screen.Width, Screen.Height); 
    Bild.Width := Screen.Width; 
    Bild.Height := Screen.Height; 
    Bild.Canvas.CopyRect(r, c, r); 
    JPG := TJpegImage.Create; 
    jpg.smoothing := true; 
    jpg.CompressionQuality := 60 ; 
    jpg.Assign(bild); 
    jpg.compress; 
    jpg.SaveToFile(dircamp+'\screen.jpg'); 
    finally 
    ReleaseDC(0, c.Handle); 
    Bild.free; 
    jpg.free; 
    c.Free; 
    end; 
except 
end; 
0

Компонент визуализатора от экрана имеет OnPaint метод, который используется для копирования данных на экран, и вы можете использовать его для сохранения изображения