我希望能够创建给定网站的屏幕截图,但网站可能比屏幕上可以查看的要大。有没有办法可以做到这一点?
目标是在WinForms应用程序中使用C#中的.NET执行此操作。
答案 0 :(得分:8)
有一些工具。
问题是,您需要在某个给定的程序中渲染它,并拍摄它的快照。 我不知道.NET,但这里有一些工具可供查看。
答案 1 :(得分:2)
我刚刚发现了网站 browsershots.org ,它为一大堆不同的浏览器生成屏幕截图。在某种程度上,您甚至可以指定分辨率。
答案 2 :(得分:1)
我在VB.NET中编写了一个程序来完成你指定的程序,除了屏幕尺寸问题。
我在我的表单上嵌入了一个Web控件(查看所有控件的最底部),并调整了它的设置(隐藏滚动)。我使用计时器等待动态内容,然后我使用“copyFromScreen”来获取图像。
我的程序有动态尺寸(可通过命令行设置)。我发现,如果我让我的程序大于屏幕,图像将返回关闭屏幕区域的黑色像素。当时我的工作完成,我没有进一步研究。
希望能给你一个良好的开端。对不起任何错误的措辞。我登录窗口每两个月只开发一次。
答案 3 :(得分:0)
以屏幕截图进行操作可能会变得很难看。使用wget捕获页面的整个内容很容易,但图像意味着捕获渲染。
这是some tools声称可以做到的。
答案 4 :(得分:0)
这是以编程方式创建屏幕截图的代码:
using System.Drawing.Imaging;
int screenWidth = Screen.GetBounds(new Point(0, 0)).Width;
int screenHeight = Screen.GetBounds(new Point(0, 0)).Height;
Bitmap bmpScreenShot = new Bitmap(screenWidth, screenHeight);
Graphics gfx = Graphics.FromImage((Image)bmpScreenShot);
gfx.CopyFromScreen(0, 0, 0, 0, new Size(screenWidth, screenHeight));
bmpScreenShot.Save("test.jpg", ImageFormat.Jpeg);
答案 5 :(得分:0)
您可以在WebBrowser控件上渲染它,然后拍摄快照,如果页面大小超过屏幕大小,您必须滚动控制拍摄一个或多个快照,然后合并所有图片:)
答案 6 :(得分:0)
WebSite的Java ScreenShots
Combine Screens一起用于最终整个网页截图。
// here tableView refers to searchTableView
extension SearchViewController: UISearchResultsUpdating {
func updateSearchResultsForSearchController(searchController: UISearchController) {
tableView.hidden = false
filterData(text: searchController.searchBar.text!)
tableView.reloadData()
}
}