日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Delphi保存网页中的图片

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi保存网页中的图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 獲取網頁中的靜態圖片

  網頁中的靜態圖片加載后會保存在IE緩存區內,所以只要獲取圖片URL在IE緩存區中對應的本地文件名,就可以使用Win32API函數:CopyFile拷貝到指定的文件名就可以了,獲取URL對應本地文件名的函數如下:

uses?WinInet

?function GetLocalFileNameFromIECache(url:string; var LocalFileName:string):DWORD;
var
? D: Cardinal;
? T: PInternetCacheEntryInfo;
begin
? result := S_OK;
? D := 0;
? T:=nil;
? GetUrlCacheEntryInfo(PChar(Url), T^, D);
? Getmem(T, D);
? try
??? if (GetUrlCacheEntryInfo(PChar(Url), T^, D)) then
????? LocalFileName:=T^.lpszLocalFileName
??? else
????? Result := GetLastError;
? finally
??? Freemem(T, D);
? end;
end;

2. 獲取網頁中的動態圖片

??? 網頁中動態生成的圖片有些并不保存在IE緩存區中,這種圖片只能使用TWebBrowser控件獲取,下面的代碼將網頁中的第一幅圖片復制到Windows剪貼板,并用Image1控件顯示:

uses?MsHtml, ActiveX, ClipBrd

procedure?TForm1.Button1Click(Sender: TObject);
var
? iIndex: Integer;
? Rang:IHTMLControlRange;
? ImgSel: IHTMLControlElement;
begin
? iIndex := 0;?//所需的圖片在網頁中出現的順序
? Rang := ((IHTMLDocument2(WebBrowser1.Document).body as HTMLBody).createControlRange) as IHTMLControlRange;
? ImgSel := IHTMLDocument2(WebBrowser1.Document).images.item(iIndex,EmptyParam)as IHTMLControlElement;
? Rang.add(ImgSel);
? Rang.execCommand('Copy', False, 0);
? Image1.Picture.Assign(ClipBoard);
end;

initialization
? OleInitialize(nil);
finalization
? OleUninitialize;

end.

3. 將Image1控件中的圖像保存為BMP文件

procedure?TForm1.Button2Click(Sender: TObject);
var
? Bmp: TBitmap;
begin
??if not?
SaveDialog1.Execute?then?Exit;
? bmp := TBitmap.Create;
? bmp.Width := Image1.Width;
? bmp.Height := Image1.Height;
? bmp.Canvas.Draw(0,?0, Image1.Picture.Graphic);
? bmp.SaveToFile(SaveDialog1.FileName);
? bmp.Free;
end

總結

以上是生活随笔為你收集整理的Delphi保存网页中的图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。