在Delphi'中保存特定图像;那是特威布鲁瑟?
我需要在Twebbrowser中保存一个特定的图像,但不需要重新加载它;图像已加载。我知道如何获取图像的源url并下载它,但我真正需要的是保存已经加载到浏览器中的图像。有办法吗在Delphi'中保存特定图像;那是特威布鲁瑟?,delphi,twebbrowser,Delphi,Twebbrowser,我需要在Twebbrowser中保存一个特定的图像,但不需要重新加载它;图像已加载。我知道如何获取图像的源url并下载它,但我真正需要的是保存已经加载到浏览器中的图像。有办法吗 谢谢 似乎没有直接的方法将图像元素保存到文件中,所以我会从缓存中获取它。要通过给定的资源URL从IE缓存复制文件,可以使用如下函数。URL参数是HTML标记的src属性值,FileName是目标文件名: uses WinInet; procedure SaveInetResourceToFile(const URL
谢谢 似乎没有直接的方法将图像元素保存到文件中,所以我会从缓存中获取它。要通过给定的资源URL从IE缓存复制文件,可以使用如下函数。
URL
参数是HTML标记的src
属性值,FileName
是目标文件名:
uses
WinInet;
procedure SaveInetResourceToFile(const URL, FileName: string);
var
BufferSize: DWORD;
CacheEntry: PInternetCacheEntryInfo;
begin
if not RetrieveUrlCacheEntryFile(PChar(URL), TInternetCacheEntryInfo(nil^),
BufferSize, 0) then
begin
if GetLastError = ERROR_INSUFFICIENT_BUFFER then
begin
GetMem(CacheEntry, BufferSize);
try
if RetrieveUrlCacheEntryFile(PChar(URL), CacheEntry^, BufferSize, 0) then
try
Win32Check(CopyFile(CacheEntry.lpszLocalFileName, PChar(FileName),
False));
finally
Win32Check(UnlockUrlCacheEntryFile(PChar(URL), 0));
end
else
RaiseLastOSError;
finally
FreeMem(CacheEntry);
end;
end
else
RaiseLastOSError;
end;
end;
我认为如果它被显示,那么它已经在你的MSIE缓存的应用程序部分,所以如果你直接打开它,它将从缓存中获取,而不是从服务器是的,这是我想要的,从IE缓存中保存;但是我不知道怎么做。我刚刚发现了一个解决方案的问题:)你问的是如何保存已加载的图像,而不是如何将其呈现到设备上下文。。。是的,有一个解决办法,但严格地说,不是解决你现在提出的问题的办法。