社区
C#
帖子详情
C# FORM 如何根据网址获得网上的图片。谢谢!
benbenRH
2009-03-27 03:44:48
如题,谢谢
...全文
193
8
打赏
收藏
C# FORM 如何根据网址获得网上的图片。谢谢!
如题,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
benbenRH
2009-04-02
打赏
举报
回复
我自己找到了,比你们的简单!
如下:
WebClient wc = new WebClient();
wc.DownloadFile("URL" +imageFile , Application.StartupPath + @"\images\" +imageFile );
A海阔天空
2009-03-30
打赏
举报
回复
顶一楼..
SealedLove
2009-03-30
打赏
举报
回复
WebClient类
genius_tong
2009-03-30
打赏
举报
回复
顶一楼~
sunshine_anycall
2009-03-30
打赏
举报
回复
mark
up
cpio
2009-03-30
打赏
举报
回复
使用WebClient
public byte[] DownloadData (
string address
)
这样取出来就是图片内容
public void DownloadFile (
string address,
string fileName
)
这样直接把图片保存到指定的文件
fanbo
2009-03-27
打赏
举报
回复
楼上厉害!
我不懂电脑
2009-03-27
打赏
举报
回复
用webbrower控件导航到图片
1、加入引用
在控件栏按右键,选择“添加/移除项”,选COM组件,选中“Microsoft Web Browser”。然后就可以往窗体上拖出一个该控件(下面把该控件一个对象称为webBrowser)。控件属性中可以调整的不多,从一些资料中得知WebBrowser中的MenuBar、StatusBar等其实都没实现。
2、控件的函数
由于是COM过来的控件,它的一些函数就比较怪,基本的Navigate函数除了第一个参数外,其它都是ref类型的,需要显式地写ref才能调用。一般要使之导向到某个页面,先设置一个空对象,object objNull=null;然后
webBrowser.Navigate(strPage, ref objNull, ref objNull, ref objNull, ref objNull);
即可。具体其它四个参数可参考相关文档。
还有一个常用的功能,就是怎么让浏览器显示自己的html文档,一个方法是用DOM里根元素的innerText:
((mshtml.HTMLDocumentClass)webBrowser.Document).documentElement.innerText=sHTML;
相当用于Javascript设置网页的代码。这种方法方便是方便,但是有很多问题,写入的大部分Javascript函数都没法正常使用,即使用<script defer>似乎也没用;这样不能用前进、后退来进行历史浏览;查看源代码根本看不到什么……其实最致命的就是 Javascript没法用,无法满足一般的需要。
第二个方法是把自己的网页写到一个临时文件,然后navigate到这个文件,Foxmail是这样做的。这样做的缺点是会产生很多临时文件,文件在磁盘上的读写需要耗费较多时间,而且要记得及时清理。
第三个方法是用COM中IPersistStreamInit之类的,使用流操作,据说Outlook便是这样做的。这样显然是最好的,在内存中形成网页进行操作速度也很快。但我在.Net里找不到这个接口,所以不知道如何实现。
3、与应用程序交互
网页与应用程序的交互不外乎是网页上点击某链接,或通过其它途径,比如表单提交等,使浏览器导航至新的链接,所以我通过BeforeNavigate2这个事件来,该事件有flags、headers、postData、targetFrameName、uRL等属性,足够我们进行处理。这样我们程序就好像一个WebServer,可以处理网页上的链接、提交的表单等等。然后把使浏览器导航至处理后产生的结果网页。
又在网上看到有人用System.Runtime.InteropServices.Expando.IExpando:
mshtml.HTMLDocumentClass doc2=(mshtml.HTMLDocumentClass)webBrowser.Document;
System.Runtime.InteropServices.Expando.IExpando ex=(System.Runtime.InteropServices.Expando.IExpando)doc2;
System.Reflection.PropertyInfo piform1=ex.AddProperty("Form1");
piform1.SetValue(doc2,this,null);
这样,在网页中的document.Form1就是这个WinForm的Control了。你可以用脚本来调用Form1!这也不失为一个极妙的方法。
4、应用程序操作浏览器/网页:
WebBrowser浏览器控件提供了一些函数,如ExecWB,可以使浏览器执行内部定义的一些操作,如执行另存为:
webBrowser.ExecWB( SHDocVw.OLECMDID.OLECMDID_SAVEAS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref objNull, ref objNull );
但似乎这里按取消的话会抛出一个异常,所以我用一个空的try{}catch(Exception){}来捕获它,就不会有错误了。
还可以用DOM里的一些方法来操作网页,举个例子,可以这样调用网页中写好的一个Javascript函数func():
((mshtml.HTMLDocumentClass)webBrowser.Document).parentWindow.execScript( "func()", "JScript" );
C#
Win
form
多个程序之间的通信(非Scoket)
C#
Winfrom程序之间通讯_
c#
sendmessege copydatastruct 返回多个值_在之前我写过 win
form
程序与程序之间的通信,但是这个版本有个问题,那就是只能由两个程序进行通信,同时打开多个程序的话,接收方收到的数据就...
C#
win
form
简单五子棋 200行代码实现双人对战
2、界面界面设计如图1所示,背影图是用Graphics自己画的,但在生成棋子
图片
的时候,消失了,知道的同学告诉我一下
谢谢
,因此自己截图做背影,把
图片
导入项目得到背景图,设想是可以有双人,人机,联网三个模式,后续...
C#
生成缩略图
今天索性随便贴一些代码,这些代码主要是为了解决
图片
的压缩问题 我们都知道,移动端的
图片
不易过大,否则就会拉低加载速度!影响用户体验 因此,我们就有必要通过程序生成大
图片
的缩略图!这种场景常用在加载
图片
...
(七十七)
c#
Win
form
自定义控件-采样控件
88 } 1 #region 根据角度得到坐标 English:Get coordinates from angles 2 /// 3 /// 功能描述:根据角度得到坐标 English:Get coordinates from angles 4 /// 作 者:HZH 5 /// 创建日期:2019-09-28 11:56:25 6 ///...
C#
制作贪吃蛇小游戏,最简单的实现
C#
制作贪吃蛇小游戏 目录 画蛇 实现蛇的上下左右移动 随机生成目标物 开始游戏 计分 重新开始 增加难度 死亡判定 1.1 画蛇的一节 Class Element() Graphics g; public void SnakeElement(
Form
form
,float x...
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章