我可以将屏幕截图作为矢量图形或比原生分辨率更高吗?

Alf*_*tau 40 screenshot vector-graphics resolution high-resolution

我需要截取一些应用程序窗口的屏幕截图。我的笔记本电脑分辨率很低,我想获得高质量的图像。

有没有办法将屏幕抓取为矢量图形(例如 EPS、PDF、SVG)?或者,有没有办法截取比原生分辨率更高的屏幕截图?

我的原始分辨率是 1366x768,而我至少需要接近 4000x3000 的分辨率。

Ho1*_*Ho1 28

当然!是的,你可以这样做。您将需要一个具有矢量后端的 UI 渲染引擎。Gtk+ 3+ 有那个后端。请看这个项目:

但是您应该知道该应用程序应该能够使用 Gtk+ 在 Linux 上运行。也许您可以使用这种方法创建模型,或者使用 Microsoft Visio 来创建矢量输出。

请参阅这些示例:

如果您是 Debian/Ubuntu 用户,则可以简单地进行安装

$ sudo apt-get install gtk-vector-screenshot
$ take-vector-screenshot
Run Code Online (Sandbox Code Playgroud)

然后你只需要选择你想用鼠标截图的应用程序。目前,应用程序应该是 Gtk+ 3 才能获得成功的矢量屏幕截图。结果将是当前工作目录中的 PDF 文件。

采取矢量屏幕截图应用程序

PS:好消息:Firefox 42将使用 Gtk+3


Syn*_*ech 9

捕获为向量?不,当然不是。如果没有某种挂钩到进行绘图的程序中,则捕获程序无法了解有关屏幕上形状的几何形状的任何信息。

但是,您可以做的是捕获光栅图像,然后将其转换为 vector。有像Inkscape这样的工具可以执行这种转换(尽管您通常必须手动进行一些调整,即便如此,您也很少能够获得像素完美的结果)。

至于分辨率,当您执行捕获时,它无法捕获比可用信息更多的信息。您可以重新调整结果图像的大小,如果您使用良好的缩放算法,内插像素会很好地混合,但没有办法创造比现有更多的像素信息。

从理论上讲,有可能实现某种系统,其中所有内容都以更高的分辨率在内部呈现,然后以较小的分辨率发送到屏幕,但这需要操作系统和驱动器的特殊支持,并且是不太可能实现,因为它的使用非常有限,并且在大多数情况下只会浪费内存。

您可以使用桌面平移来获得比屏幕支持的分辨率更高的桌面,但同样,这需要您的驱动程序支持它。

  • 你错了 - 大多数 GUI 元素都特别基于矢量,包括渐变。但是——主流操作系统和 GUI 框架为屏幕抓取器提供了外部侦听器 API,这是一个大问题,但没有已知的捕获程序支持这一点。例如,您可以查看常规的 Windows Inspect 客户端:它可以获取所有 UI 事件,并且您可以制作自己的工具,将这些事件呈现为矢量屏幕截图。 (3认同)