C#实现“将网页转成图片”功能,高手请进,马上给分……

hyb3280660 2006-07-17 05:42:34
如何用C#程序实现以下功能?获取指定url的网页缩略图,图片格式Jpg即可,大小嘛1024*768

在winForm里内嵌一个停靠窗体的WebBrowser,将WebBrowser的url设为“http://www.sina.com.cn”,延时30秒后,即可通过程序抓取winForm窗体中的网页,保存成图片。
但问题是,一台普通的服务器,一般显示器分辨率都是1024*768的大小,像对于“新浪”这样的网站,显示的时候都不止一屏幕,有滚动条,程序不好实现一次性的抓取生成。在网上找到一款名称为:www2image的网页抓图工具,很牛。现本人想通过C#程序实现类似www2image的功能。

请高手指教。
...全文
765 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wawaku 2006-12-15
  • 打赏
  • 举报
回复
Mark
jackiehua 2006-12-15
  • 打赏
  • 举报
回复
能够web中通过上面的方式抓取图片吗
qltouming 2006-12-15
  • 打赏
  • 举报
回复
Mark,旁听
zhaochong12 2006-12-15
  • 打赏
  • 举报
回复
这个太棒了!
iyond 2006-07-20
  • 打赏
  • 举报
回复
to flycrystal():你下载一下看看就知道了。
flycrystal 2006-07-20
  • 打赏
  • 举报
回复
如果很长的话,你一次如何设置得下? 比如 长度超过了你整个屏幕分辨率的2倍以上?
iyond 2006-07-19
  • 打赏
  • 举报
回复
我写完了,不是用的flycrystal() 说的那个设置滚动条的,而是直接设置窗体的大小,一次抓屏完成。

http://www.vs2005.com/forums/thread/28.aspx
Yellow198267 2006-07-18
  • 打赏
  • 举报
回复
关注+收藏
iyond 2006-07-18
  • 打赏
  • 举报
回复
我刚才试了一下,通过普通的方法,窗体的最高高度只能设置成780,不能再往大了设了。通过设置IE控件的滚动条位置是一个方法,但是不通用。现在我特别想知道HyperSnap软件里的“延展捕捉窗口”是怎么实现的。
flycrystal 2006-07-17
  • 打赏
  • 举报
回复
标准答案已经有人写出来了,我给出地址,仅供参考
Image Capture Whole Web Page using C#
http://www.codeproject.com/cs/media/IECapture.asp

P.S. Sunmast(速马|回到未来), 猜猜我是谁? MSN上告诉我,呵呵
速马 2006-07-17
  • 打赏
  • 举报
回复
Windows Shell似乎有相关的API,忘掉了
以前搞过一个打印机驱动,可以print任何文档到图片,也能实现的
hyb3280660 2006-07-17
  • 打赏
  • 举报
回复
To iyond(伊飏):
我目前实现的功能是把浏览器控件显示出来,然后再抓的。想不显示出来,并且又能抓到整个网页的图像,好难啊
hyb3280660 2006-07-17
  • 打赏
  • 举报
回复
To iyond(伊飏):
请问怎么在不显示浏览器控件的情况下,怎么抓取浏览器控件中的图像?
iyond 2006-07-17
  • 打赏
  • 举报
回复
你可以等浏览器中网页加载完成后,得到网页的高度和宽度,然后设置浏览器控件的高度和宽度分别为网页的高度和宽度,然后再抓取浏览器控件的图像。
iyond 2006-07-17
  • 打赏
  • 举报
回复
想法不错,关注一下!
chinahuman 2006-07-17
  • 打赏
  • 举报
回复
可以通过IE的接口,装载完成后,抓一点,把页面滚动一点,直到抓完。
不过我试了,比较恐怖的,如果同时有十个人来抓,你的服务器被挂掉的机会还是很大的。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧