Paulo.. o exemplo não me ajudo, nem com a dica do Micheus. Acho meio complicado esse negocio de manipulacao de imagem ai. Seguinte.. Com o codigo abaixo a imagem fica com a qualidade que eu quero(qualidade de .bmp). Porem desse modo ele tira um screenshot do webBrowser todo. A ideia do codigo que esta comentado é pegar esse screenshot inicial e fazer uma nova imagem iniciando e terminando em tal posicao. Porem nessa hora a imagem perde qualidade, parece que foi dado um zoom na imagem. To perdido... Help-me. procedure TForm1.Button3Click(Sender: TObject);
begin
imgSalvaImagem('C:\Users\Pc\Desktop\imagem.bmp');
end;
procedure TForm1.imgSalvaImagem(sArq: String);
var
viewObject : IViewObject;
r : TRect;
bitmapdst, bitmap : TImage;
RectOrigem, RectDestino: TRect;
begin
if webBrowser1.Document <> nil then
begin
webBrowser1.Document.QueryInterface(IViewObject, viewObject);
if Assigned(viewObject) then
try
bitmap := TImage.Create(Self);
bitmapdst := TImage.Create(Self);
bitmap.Height := webBrowser1.Height;
bitmap.Width := webBrowser1.Width;
r := Rect(0, 0, bitmap.width, bitmap.height);
viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0);
// RectOrigem := Rect(243, 182, 452, 388);
// RectDestino := Rect(0, 0, 351, 287);
// Bitmapdst.Width := 144;
// Bitmapdst.Height := 13;
// Bitmapdst.Canvas.CopyRect(RectDestino, bitmap.Canvas, RectOrigem);
finally
viewObject._Release;
end;
//Bitmapdst.Picture.Bitmap.SaveToFile(sArq); //imagem recortada
bitmap.Picture.Bitmap.SaveToFile(sArq); //print original
end;
end;