与CopyFromScreen签名混淆

时间:2010-10-31 15:35:52

标签: c# .net image-processing

我正在尝试使用CopyFromScreen捕获屏幕截图。但是方法签名对我来说有点混乱。

看起来像这样:

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

为什么有3个参数而不是2个?为什么还有upperLeftCorner。根据我的理解,您可以使用两个点(左上角和右下角)描述表面上的方形区域。这可以描述任何大小和任何位置的区域。

所以问题是:如何使用此方法捕获表示的区域:(X0,Y0)(X1,Y1)?

2 个答案:

答案 0 :(得分:2)

upperLeftDestination参数告诉您图像在哪里绘制副本 您可能希望它为0, 0

答案 1 :(得分:2)

upperLeftDestination是新图片中要放置已复制图像的位置。

从屏幕左上角开始从屏幕复制50x50的方块:

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

从(100,100)开始从屏幕复制50x50的方块:

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

要将屏幕左上方的50x50正方形复制到60x60的图像中,并在所有边上为其提供5px的均匀边框:

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