gpt4 book ai didi

delphi - 图像从 TWebBrowser 到 TPicture

转载 作者:行者123 更新时间:2023-12-01 16:30:11 25 4
gpt4 key购买 nike

如何将已在 TWebBrowser 中下载的图像获取到 TPicture,而不将其复制到剪贴板或查找缓存内容。

最佳答案

好的,我用最后一个答案制作了样本:

首先使用此函数通过 Id 获取图像:

function GetImgElementById(const Doc: IDispatch; const id : string): IHTMLImgElement;
var
Document: IHTMLDocument2; // IHTMLDocument2 interface of Doc
Body: IHTMLElement2; // document body element
Tags: IHTMLElementCollection; // all tags in document body
Tag: IHTMLElement; // a tag in document body
I: Integer; // loops thru tags in document body
begin

Result :=nil ;
// Check for valid document: require IHTMLDocument2 interface to it
if not Supports(Doc, IHTMLDocument2, Document) then
raise Exception.Create('Invalid HTML document');
// Check for valid body element: require IHTMLElement2 interface to it
if not Supports(Document.body, IHTMLElement2, Body) then
raise Exception.Create('Can''t find <body> element');
// Get all tags in body element ('*' => any tag name)
Tags := Body.getElementsByTagName('img');
// Scan through all tags in body
for I := 0 to Pred(Tags.length) do
begin
// Get reference to a tag
Tag := Tags.item(I, EmptyParam) as IHTMLElement;
// Check tag's id and return it if id matches
if AnsiSameText(Tag.id, id) then
begin
Result := Tag as IHTMLImgElement ;
Break;
end;
end;
end;

可以使用后:

var
img : IHTMLImgElement ;
rnd : IHTMLElementRender ;
begin
//
img := GetImgElementById(wb1.Document,'imgid');
// img1 is TImage
img1.Height := img.height ;
img1.Width := img.width ;
rnd := img as IHTMLElementRender ;
rnd.DrawToDC(img1.Canvas.Handle);
end;

不要忘记“MSHTML”单元;

关于delphi - 图像从 TWebBrowser 到 TPicture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13444041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com