2010-10-31 95 views
0

我正在嘗試使用CopyFromScreen捕獲屏幕截圖。然而方法簽名對我來說有點混亂。與CopyFromScreen簽名相混淆

它看起來像這樣:

public void CopyFromScreen(
    Point upperLeftSource, 
    Point upperLeftDestination, 
    Size blockRegionSize 
) 

爲什麼有3個參數,而不是2?爲什麼有兩個upperLeftCorner。根據我的理解,您可以使用兩個點(左上角和右下角)描述表面上的正方形區域。這可以描述任何大小和任何位置的區域。所以問題是:我如何使用這種方法來捕獲一個區域表示爲:(X0,Y0)(X1,Y1)????????????????????????????????????????

回答

2

upperLeftDestination是新圖像中要放置複製圖像的位置。

graphics.CopyFromScreen(new Point(0,0), new Point(0, 0), new Size(50, 50)); 

要從屏幕開始(100,100)複製50×50正方形:

graphics.CopyFromScreen(new Point(100, 100), new Point(0, 0), new Size(50, 50)); 

要從屏幕起始於屏幕的左上角複製50×50平方

要將屏幕左上角的50x50正方形複製到60x60圖像中,並在所有邊上均勻設置5px的邊框:

graphics.CopyFromScreen(new Point(0, 0), new Point(5, 5), new Size(50, 50)); 
2

upperLeftDestination參數告訴它在圖像的哪個位置繪製副本。
您可能希望那是0, 0

+0

假設您只是想將捕獲的矩形保存到一個文件中以便以後查看? – 2010-10-31 15:51:50

+0

@GregS:然後你會創建一個'Bitmap'對象,使用'Graphics.FromImage',然後調用'Save'。 – SLaks 2010-10-31 15:56:48