Когда мы делаем скриншоты выбранных областей Ubuntu
(используя Shift+ Prt Scrили Ctrl+ Shift+ Prt Scr), мы всегда выбираем прямоугольную область . Итак, я знаю, что я мог бы просто отредактировать изображение в некоторой программе, такой как Inkscape, чтобы создать круг с прямоугольным изображением, но я хотел бы знать, есть ли конфигурация, которую я могу изменить, чтобы иметь возможность выбирать различные виды фигур (в основном, круги ) непосредственно, когда я делаю скриншот.
Является ли это возможным?
scripts
software-recommendation
programming
screenshot
productivity
Рафаэль Муйнарск
источник
источник
Ответы:
Я собрал небольшой скрипт для круговых снимков экрана, вам нужны следующие пакеты (хотя он также адаптируется для других программ снимков экрана и эмуляторов терминала):
Сценарий
Сохраните его как например
~/circular_screenshot.bash
и сделайте его исполняемым сchmod +x ~/circular_screenshot.bash
. Когда вы запустите его, скрипт сначала попросит вас переместить курсор мыши в центральное положение и нажать, Enterа затем переместить его в крайнее положение (неважно, какой скрипт рассчитывает радиус от расстояния) и снова нажать Enter. Затем экран мерцает, пока делается снимок экрана (я рекомендую использоватьscrot $temp_screenshot
вместо этого, это не показывает это странное поведение.) И ImageMagickconvert
1 используется, чтобы обрезать изображение. Вывод сохраняется с отметкой времени в качестве имени файла в вашем домашнем каталоге, вы можете изменить это поведение, отредактировавoutput
переменную скрипта.Пример вывода
Звоните без (или лучше: с невидимым) терминального окна
Я полагаю, вы не хотите, чтобы терминал блокировал ваш экран каждый раз, когда вы делаете такой снимок экрана, так что вот решение для этого; Вызовите скрипт следующим образом (при условии, что скрипт был сохранен как
~/circular_screenshot.bash
):При этом скрипт запускается в невидимом окне терминала (значок с красным «X» и синим «T»), вам просто нужно убедиться, что он сфокусирован при вводе Enter. Вы можете назначить эту команду для сочетания клавиш, используя настройки вашего рабочего стола.
Поскольку ImageMagick невероятно мощен, вы можете адаптировать этот скрипт и для вывода других фигур, я использовал один
ellipse
и тот же радиус в направлениях x и y, чтобы нарисовать кружок выше - измените его, например,$radius,$(bc <<<"$radius*0.5")
чтобы получить эллипс с эксцентриситетом выше 0.1: я взял подход из этой темы на imagemagick.org .
источник
Я обнаружил кое-что здесь о скриншотах. Когда мы делаем скриншоты в Ubuntu (у меня 16.04), мы на самом деле используем программное обеспечение под названием
gnome-screenshot
. Это программное обеспечение с открытым исходным кодом, написанное на C, и мы можем найти его исходный код на GitHub по этой ссылке :Ну, там есть файл,
screenshot-area-selection.c
который отвечает на мой вопрос. Это файл с 361 строк кода, поэтому я не буду вставлять его здесь. Но насколько я понял из этого файла (не очень), он использует много функций, которые структурированы вокруг построения прямоугольной формы ... Как в этом фрагменте кода:Итак, я пришел к выводу, что невозможно изменить какую-либо конфигурацию для использования снимков экрана,
gnome-screenshot
потому что ее код не структурирован для этого ... Хотя возможно загрузить код, изменить код самостоятельно, перекомпилировать его, а затем использовать мою собственную персонализированную версию изgnome-screenshot
.источник
Используя ту же идею принятого ответа, я создал другой сценарий для создания гексагональных снимков экрана, и я делюсь им здесь на случай, если он пригодится кому-то еще.
Пример вывода
Сценарий
Процесс точно такой же, как принятый ответ . В этом случае я просто изменил имя скрипта:
«Сохраните его, например,
~/hexagonal_screenshot.bash
и сделайте его исполняемым с помощьюchmod +x ~/hexagonal_screenshot.bash
. При запуске сценарий сначала попросит вас переместить курсор мыши в центральное положение и нажать клавишу« Ввод », а затем переместить его в крайнее положение (независимо от того, какой, скрипт вычисляет радиус от расстояния) и снова нажмите Enter. Затем экран мерцает, пока делается снимок экрана (я рекомендую использоватьscrot $temp_screenshot
вместо этого, это не показывает это странное поведение.) и ImageMagick'sconvert
используется для обрезки изображения. сохраненный с отметкой времени в качестве имени файла в вашем домашнем каталоге, вы можете изменить это поведение, отредактировавoutput
переменную скрипта. "Дополнительная информация
В случае, если кому-то интересно узнать об этой математике, вот как я это сделал. Для создания многоугольника с разным числом ребер или различной формы с помощью
Imagemagick
процедуры будет такой же: делать математику , и добавлять или удалять точки в этой части кода"polygon $P1_x,$P1_y $P2_x,$P2_y $P3_x,$P3_y $P4_x,$P4_y $P5_x,$P5_y $P6_x,$P6_y"
.источник