29

Мне нужно сделать несколько скриншотов окна приложения. Разрешение моего ноутбука низкое, и я хотел бы получать изображения высокого качества.

Есть ли способ захватить экран как векторную графику (например, EPS, PDF, SVG)? Альтернативно, есть ли способ сделать скриншот с более высоким разрешением, чем у родного?

Мое собственное разрешение - 1366x768, хотя мне нужно разрешение не менее 4000x3000.

4 ответа4

20

Конечно! Да, вы можете сделать это. Вам понадобится механизм рендеринга пользовательского интерфейса с векторным бэкэндом. Gtk+ 3+ имеет этот бэкэнд. Пожалуйста, посмотрите этот проект:

Но вы должны знать, что приложение должно быть в состоянии работать в Linux с помощью Gtk+. Может быть, вы можете создать макеты с помощью этого метода или с помощью Microsoft Visio для векторного вывода.

Смотрите эти образцы:

Если вы являетесь пользователем Debian/Ubuntu, для установки вы можете просто сделать

$ sudo apt-get install gtk-vector-screenshot
$ take-vector-screenshot

И тогда вам нужно только выбрать, какое приложение вы хотите сделать скриншот с помощью мыши. Конечно, приложение должно быть Gtk+ 3 для успешного векторного скриншота. Результатом будет файл PDF в текущем рабочем каталоге.

взять-вектор-скриншот приложения

PS: Хорошие новости: Firefox 42 будет использовать Gtk+3.

10

Захватить как вектор? Нет, конечно нет. У программы захвата нет возможности узнать что-либо о геометрии фигур на экране, не имея какого-то рода крючка в программах, выполняющих рисование.

Однако вы можете сделать снимок растра и затем преобразовать его в вектор. Существуют такие инструменты, как Inkscape, которые могут выполнить это преобразование (хотя обычно вам придется вручную вносить некоторые изменения, и даже тогда вы редко сможете получить идеальные по пикселям результаты).

Что касается разрешения, то при выполнении захвата оно не может захватить больше информации, чем доступно. Вы можете изменить размер получающегося изображения, и если вы используете хороший алгоритм масштабирования, интерполированные пиксели будут смешиваться довольно хорошо, но нет способа изобрести больше информации о пикселях, чем есть.

Теоретически можно было бы реализовать какую-то систему, в которой все отображается внутри с более высоким разрешением, а затем отправляется на экран с меньшим разрешением, но для этого потребуется специальная поддержка как в ОС, так и в накопителе. маловероятно, что он будет реализован, поскольку он имеет очень ограниченное использование и в большинстве случаев будет пустой тратой памяти.

Вы можете использовать панорамирование на рабочем столе, чтобы получить рабочий стол с более высоким разрешением, чем экран, но опять же, это требует, чтобы ваши драйверы поддерживали его.

0

Для пользователей UNIX вы можете использовать KSnapShot или GIMP. Более подробная информация приведена на графическом экране.

Чтобы установить KSnapShot, вы можете использовать эту ссылку KSnapShot

GIMP также доступен для Windows.

0

Не в настоящее время. Это должно быть возможно, но это не так.

Оба являются собственными векторными пользовательскими интерфейсами, но допускают также использование растровых изображений - это отлично подходит для SVG. Однако, хотя существуют инструменты для экспорта WPF в SVG, большинство из них предназначены для разработчиков программного обеспечения. Например, вам понадобится исходный код XAML вашего приложения, а затем экспортируйте его в SVG.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .