优快云问答:Delphi中如何保存Webbrowser中的页面到图片

博客给出了使用Delphi从浏览器生成JPEG图片的代码。定义了GenerateJPEGfromBrowser过程,通过创建位图、视图对象等操作,将浏览器内容绘制到位图,再转换为JPEG保存。还给出了按钮点击事件代码,调用该过程生成图片并加载显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




procedureGenerateJPEGfromBrowser(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 = nilthen
Exit;

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

// Resizethesrcbitmaptothetargetbitmap // Needtomakethumbnailsinsteadoffullsize? // setthetargetsizehere..targetDrawRect:=Rect(0,0,tarWidth,tarHeight);
targetBitmap.Height: = tarHeight;
targetBitmap.Width:
= tarWidth;
targetBitmap.Canvas.StretchDraw(targetDrawRect,sourceBitmap);

// CreateaJPEGfromtheBitmapandsaveitaJPG.Assign(targetBitmap);

aJPG.SaveToFile(jpegFQFilename)
finally
aJPG.Free;
sourceBitmap.Free;
targetBitmap.Free
end;
... {try}

except
// errorhandlercodeend;{try}
end; ... {GenerateJPEGfromBrowser}


procedureTForm1.Button2Click(Sender:TObject);
var
IDoc1:IHTMLDocument2;
Web:iWebBrowser2;
tmpX,
tmpY:integer;
begin
... {TForm1.Button2Click}
withWebBrowser1
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;
... {withWebBrowser1}
end;
... {TForm1.Button2Click}

Source code :HTTPtoJPEG.zip (3 kB)
原文连接:
http://www.delphifaq.com/fq/q2231.shtml
http://www.applevb.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值