Delphi保存网页中的图片
WEBBrowser已经打开了URL
V = WEBBrowser.Document.body.createControlRange();
V1 = WEBBrowser.Document.images.Item(0,0); //这里是一个图片 <img ...>
V.add(V1);
V.execCommand('SaveAs' , False , 'E:\dd.bmp'); //最后这里保存不了图片
如果用V.execCommand('Copy');可以把该图片复制到粘贴板上。
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保存网页中的图片的更多相关文章
- UIWebView保存网页中的图片(转载)
现在H5混合原生开发的方式越来越流行,也就要用到UIWebView控件.在开发过程中,我们可能会遇到一个需求,要求我们保存网页上的图片,当用户点击图片的时候,就可以让用户选择是否下载图片. 在系统自带 ...
- 用Delphi从内存流中判断图片格式[转]
http://blog.163.com/tfn2008%40yeah/blog/static/110321319201222243214337/ 用Delphi从内存流中判断图片格式[转] 2012- ...
- 【转】资源文件在Delphi编程中的应用
段东宁 计亚南 (郴州职业技术学院, 湖南 郴州 423000) 摘要: 资源文件是一种能有效地组织.管理和使用资源的文件形式,在软件开发中有着广泛的应用.本文详细介绍了在Delphi编程中资源文件 ...
- asp自动解析网页中的图片地址,并将其保存到本地服务器
程序实现功能:自动将远程页面的文件中的图片下载到本地. 程序代码 <% '将本文保存为 save2local.asp '测试:save2local.asp?url=http://ent.sina ...
- 用Delphi直接获取bmp图片的像素
用Delphi直接获取bmp图片的像素,并存储显示出.(此像素主要用在LED上显示).希望高手能给出代码啊!! function getImagePixels(f: string): Integer; ...
- Open Xml 读取Excel中的图片
在我的一个项目中,需要分析客户提供的Excel, 读出其中的图片信息(显示在Excel的第几行,第几列,以及图片本身). 网络上有许多使用Open Xml插入图片到Word,Excel的文章, 但 ...
- C# 提取Word文档中的图片
C# 提取Word文档中的图片 图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现使 ...
- CSS中对图片(background)的一些设置心得总结
写网页的时候很多情况需要对图片进行操作,如何在不进行专业的美工裁切操作的情况下而让自己的素材度达到最大的满意度呢,这是一个问题,对于懒得开ps切图的我,通常会直接在网络上download一张图片,直接 ...
- C#正则表达式通过HTML提取网页中的图片src
目前在做HoverTreeCMS项目中有处理图片的部分,参考了一下网上案例,自己写了一个获取内容中的图片地址的方法. 可以先看看效果:http://tool.hovertree.com/a/zz/im ...
随机推荐
- java_第一年_JavaWeb(14)
EL :EL表达式主要用于获取数据.执行运算.获取对象.调用java方法: 获取数据 语法:"${标识符}" 会调用pageContext.findAttribute方法,从pag ...
- Python3之Django Web框架中间件???
主要用来处理页面的登录验验.跨站请求伪造防御.日志记录.session设置,权限管理等
- 最全的 Java 知识总结- Github 日增 10 star
项目地址: 如果觉得有帮助,希望大家给个 star 鼓励以下:同时也希望大家多多 fork,一起加入进来. 为什么选择做这个开源项目 首先,希望提高自己:因为选择做这个,自己肯定就会花时间去提高自己的 ...
- BigDecimal 的用法
1.初始化 BigDecimal discount=new BigDecimal(0.9); BigDecimal discount=new BigDecimal(200); 2.加减乘除 加法 ad ...
- xps9560黑苹果展示
花费了一些时间来安装黑苹果 - - ., 展示一波 更换了DW1820a无线网卡,花费70+ 手上这台笔记本,在安装黑苹果的时候基本没遇见太大的问题,一路顺风顺水. 桌面,程序坞调小放在左侧 极 ...
- [Windows] GIF编辑器
目录 1. 功能简介 2. 下载地址 3. 使用教程 3.1. 其他视频转gif的方案 1. 功能简介 可以自定义录屏位置.区域大小做GIF 可以编辑GIF.压缩GIF等 可以将视频转换成GIF 可以 ...
- 使用Jmeter聚合报告生成对比图表
背景 最近在帮别的项目组执行性能测试,使用的工具是Jmeter.接口录制和参数化前一个人已经做好了,我主要的工作就是执行脚本,撰写测试报告.事情并不复杂,可做起来却极为耗时. 首先,由于有6组账号,分 ...
- 二、搭建Swagger
1.新建.netCore webapi项目 2.安装swagger ,通过 Package Manager 控制台:Install-Package Swashbuckle.AspNetCore 3.修 ...
- tar shell zip
tar 打包后生成的文件名全路径 要打包的目录 tar -czPf xx/script.tar.gz ...
- Nginx+lua_Nginx+GraphicsMagick来实现实时缩略图
1.安装GraphicsMagick cd /usr/local/src wget http://sourceforge.net/projects/graphicsmagick/files/graph ...