以指定的分辨率截图

本文关键字:分辨率 | 更新日期: 2023-09-27 18:02:57

我正在考虑可能创建一个应用程序,允许我以指定的分辨率截取特定窗口(在这种情况下是浏览器)的屏幕截图。

我真的不想改变显示器的分辨率。我想做的是能够得到一个屏幕截图,显示800x600, 1024x768等等

我知道如何使用。net/c#进行截图,但我想知道是否有一种方法可以"欺骗"它以不同的分辨率进行截图(可能没有,但我想我无论如何都会问,所以请原谅这个潜在的愚蠢问题)。

欢呼

以指定的分辨率截图

截取屏幕截图,并将原始图像保存为所需的分辨率

下面的代码片段演示了这个想法:

Bitmap bmp_with_actual_resolution = new Bitmap(Screen.PrimaryScreen.Bounds.Size.Width, Screen.PrimaryScreen.Bounds.Size.Height);
Graphics g = Graphics.FromImage(bmp_with_actual_resolution);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
Bitmap bmp_800_600 = new Bitmap(800, 600);
Graphics g_800_600 = Graphics.FromImage(bmp_800_600);
g_800_600.DrawImage(bmp_with_actual_resolution, 0, 0, 800, 600);
bmp_800_600.Save("D:''file_800_600.jpg", ImageFormat.Bmp);
Bitmap bmp_1024_768 = new Bitmap(1024, 768);
Graphics g_1024_768 = Graphics.FromImage(bmp_1024_768);
g_1024_768.DrawImage(bmp_with_actual_resolution, 0, 0, 1024, 768);
bmp_1024_768.Save("D:''file_1024_768.jpg", ImageFormat.Bmp);

好吧,如果你的意思是做一个屏幕截图,当分辨率为800x600时,一切看起来会是什么样子。你不能那样做。因为Windows会让所有东西都变大,重新定位图标等。

如果你的意思是调整屏幕截图的大小到另一个分辨率,这在c#中是相当简单和容易实现的。

看看你的评论:"我很想知道在任何分辨率下,一个特定的分页符的布局是否都是"完全"的,只做屏幕截图是错误的。可能在你的程序中,我刚刚从帖子中推断,你有动态布局,你想测试不同的分辨率,看看其中的用户体验。

  1. 我不认为,这是一个很好的解决方案,使自动化,只是尝试手动,因为很多东西,只是看图像不能计算出来。

  2. 如果你想这样做:

    下面是一个如何从代码中更改屏幕分辨率的示例:

这里是如何获得屏幕截图的代码,基于坐标。所以用一个小技巧,你也可以使它在活动窗口:

c#中的截图

换句话说,如果我真的理解你想要什么,先改变屏幕的分辨率,然后做快照。