procedure GenerateJPEGfromBrowser(browser: iWebBrowser2;
jpegFQFilename: string ; srcHeight:
integer; srcWidth: integer;
tarHeight: integer; tarWidth: integer);
var
sourceDrawRect: TRect;
targetDrawRect: TRect;
sourceBitmap : TBitmap;
targetBitmap : TBitmap;
aJPG : TJPEGImage;
aViewObject : IViewObject;
begin { GenerateJPEGfromBrowser }
sourceBitmap : = TBitmap.Create;
targetBitmap : = TBitmap.Create;
aJPG : = TJPEGImage.Create;
try
try
sourceDrawRect : = Rect( 0 , 0 , srcWidth, srcHeight);
sourceBitmap.Width : = srcWidth;
sourceBitmap.Height : = srcHeight;
aViewObject : = browser as IViewObject;
if aViewObject = nil then
Exit;
OleCheck(aViewObject.Draw(DVASPECT_CONTENT, 1 , nil, nil,
Form1.Handle,
sourceBitmap.Canvas.Handle,
@sourceDrawRect, nil, nil, 0 ));
// Resize the src bitmap to the target bitmap // Need to make thumbnails instead of full size? // set the target size here.. 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 aJPG.Assign(targetBitmap);
aJPG.SaveToFile(jpegFQFilename)
finally
aJPG.Free;
sourceBitmap.Free;
targetBitmap.Free
end; { try }
except
// error handler code end; { try }
end; { GenerateJPEGfromBrowser }
procedure TForm1.Button2Click(Sender: TObject);
var
IDoc1: IHTMLDocument2;
Web : iWebBrowser2;
tmpX,
tmpY : integer;
begin { TForm1.Button2Click }
with WebBrowser1 do
begin
Document.QueryInterface(IHTMLDocument2, IDoc1);
Web : = ControlInterface;
tmpX : = Height;
tmpY : = Width;
Height : = OleObject.Document.ParentWindow.Screen.Height;
Width : = OleObject.Document.ParentWindow.Screen.Width;
GenerateJPEGfromBrowser(Web, ' . est.jpg ' ,
Height, Width,
Height, Width);
Height : = tmpX;
Width : = tmpY;
Image1.Picture.LoadFromFile( ' . est.jpg ' )
end; { with WebBrowser1 }
end; { TForm1.Button2Click }
Source code :HTTPtoJPEG.zip (3 kB)
原文连接:
http://www.delphifaq.com/fq/q2231.shtml
http://www.applevb.com