回答
有幾個工具。
的事情是,你需要使它在某個給定的程序,利用它的快照。 我不知道.NET,但這裏有一些工具可以查看。
在一個屏幕截圖可能會變得醜陋做。用wget捕獲頁面的全部內容是很容易的,但圖像意味着捕獲渲染。
這裏的some tools是聲稱這樣做。
我只是發現了關於網站browsershots.org這對於一大堆不同的瀏覽器生成截圖。在一定程度上,你甚至可以指定分辨率。
我寫在VB.NET程序指定什麼,除了屏幕大小的問題是沒有。
我在窗體上嵌入了一個web控件(查看所有控件的底部),並調整了它的設置(隱藏滾動)。我使用了一個計時器來等待動態內容,然後我使用「copyFromScreen」來獲取圖像。
我的程序有動態尺寸(可通過命令行設置)。我發現如果我讓我的程序比屏幕更大,那麼圖像只會返回屏幕外的黑色像素。自那時我的工作完成以來,我沒有進一步研究。
希望給你一個良好的開端。對不起,有任何錯誤的措辭。我登錄窗口,每隔幾個月纔會開發一次。
這是編程創建截圖中的代碼:
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);
-1這是用戶桌面的截圖,而不是網站的截圖 – Basic 2012-07-02 13:58:16
可以渲染它WebBrowser控件,然後拍攝快照,如果頁面尺寸比屏幕尺寸更大,你必須滾動控制採用一個或多個快照,然後合併所有圖片:)
Java網站截圖
Combine Screens共同爲最終整個網頁畫面熱。
public static void main(String[] args) throws FileNotFoundException, IOException {
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
ChromeDriver browser = new ChromeDriver();
WebDriver driver = browser;
driver.get("https://news.google.co.in/");
driver.manage().timeouts().implicitlyWait(500, TimeUnit.SECONDS);
JavascriptExecutor jse = (JavascriptExecutor) driver;
Long clientHeight = (Long) jse.executeScript("return document.documentElement.clientHeight");
Long scrollHeight = (Long) jse.executeScript("return document.documentElement.scrollHeight");
int screens = 0, xAxis = 0, yAxis = clientHeight.intValue();
String screenNames = "D:\\Screenshots\\Yash";
for (screens = 0; ; screens++) {
if (scrollHeight.intValue() - xAxis < clientHeight) {
File crop = new File(screenNames + screens+".jpg");
FileUtils.copyFile(browser.getScreenshotAs(OutputType.FILE), crop);
BufferedImage image = ImageIO.read(new FileInputStream(crop));
int y_Axixs = scrollHeight.intValue() - xAxis;
BufferedImage croppedImage = image.getSubimage(0, image.getHeight()-y_Axixs, image.getWidth(), y_Axixs);
ImageIO.write(croppedImage, "jpg", crop);
break;
}
FileUtils.copyFile(browser.getScreenshotAs(OutputType.FILE), new File(screenNames + screens+".jpg"));
jse.executeScript("window.scrollBy("+ xAxis +", "+yAxis+")");
jse.executeScript("var elems = window.document.getElementsByTagName('*');"
+ " for(i = 0; i < elems.length; i++) { "
+ " var elemStyle = window.getComputedStyle(elems[i], null);"
+ " if(elemStyle.getPropertyValue('position') == 'fixed' && elems[i].innerHTML.length != 0){"
+ " elems[i].parentNode.removeChild(elems[i]); "
+ "}}"); // Sticky Content Removes
xAxis += yAxis;
}
driver.quit();
}
- 1. 編程式網站屏幕截圖
- 2. 以屏幕截圖(以編程方式)
- 3. 以編程方式拍攝整個屏幕的屏幕截圖
- 4. 以Android編程的屏幕截圖問題以編程方式
- 5. 如何以編程方式截取DrawingSurface的屏幕快照
- 6. 以編程方式抓取OSX中的屏幕截圖
- 7. 以編程方式採用屏幕截圖iOs 5
- 8. 以編程方式登錄論壇,然後屏幕截圖
- 9. 以編程方式進行屏幕截圖,沒有狀態欄
- 10. iOS以編程方式使用GPUImageview進行屏幕截圖
- 11. 鎖定屏幕以編程方式
- 12. 如何以編程方式拍攝活動(遊戲)的屏幕截圖
- 13. 如何以編程方式獲取.Net WinForms控件的屏幕截圖?
- 14. 以編程方式在屏幕下方創建UIButtons不工作?
- 15. 如何以編程方式在IIS 6中創建新網站?
- 16. SharePoint 2007 - 如何以編程方式創建網站模板
- 17. 如何以編程方式從PC獲取iphone當前屏幕截圖?
- 18. 如何以編程方式獲取android用戶主頁屏幕截圖?
- 19. 以編程方式創建網站使用自定義模板
- 20. 從屏幕截圖創建FLV流的最佳方式
- 21. 以編程方式創建一個主屏幕小部件gui
- 22. JIRA開發 - 以編程方式創建屏幕(FieldScreen)
- 23. 以當前屏幕的屏幕截圖
- 24. 以整個屏幕的屏幕截圖
- 25. 以編程方式創建ftp站點
- 26. 如何以編程方式設置iPhone鎖定屏幕背景?
- 27. 如何在mac中以編程方式「鎖定/解鎖」屏幕
- 28. 如何以編程方式在Android中鎖定屏幕?
- 29. 如何基於站點模板以編程方式創建SharePoint 2010網站
- 30. 創建一個屏幕截圖插件
有人希望做到這一點作爲服務器端腳本,但我需要一個WinForms應用程序。 – 2009-04-17 21:08:30