Przygotowałem mały skrypt dla okrągłych zrzutów ekranu, potrzebujesz następujących pakietów (choć można go również dostosować do innych programów zrzutów ekranu i emulatorów terminali):
sudo apt install xdotool gnome-screenshot imagemagick xterm
Scenariusz
#!/bin/bash
output=~/$(date +%F_%H%M%S).png
temp_screenshot=$(mktemp).png
read -p "Move cursor to center and press Enter"
eval $(xdotool getmouselocation --shell)
x_center=$X
y_center=$Y
read -p "Move cursor to edge and press Enter"
eval $(xdotool getmouselocation --shell)
gnome-screenshot -f $temp_screenshot
radius=$(bc <<<"sqrt(($X-$x_center)^2+($Y-$y_center)^2)")
convert $temp_screenshot -alpha on \( +clone -channel a -evaluate multiply 0 -draw "ellipse $x_center,$y_center $radius,$radius 0,360" \) -compose DstIn -composite -trim "$output"
Zapisz go jako np. ~/circular_screenshot.bash
I uruchom za pomocą chmod +x ~/circular_screenshot.bash
. Kiedy go uruchomisz, skrypt najpierw poprosi cię o przesunięcie kursora myszy do pozycji środkowej, Entera następnie naciśnij, a następnie o przesunięcie go do pozycji krawędzi (nie ma znaczenia, który skrypt oblicza promień z odległości) i ponownie naciśnij Enter. Następnie ekran migocze podczas robienia zrzutu ekranu (zalecam użycie scrot $temp_screenshot
zamiast tego, nie pokazuje tego dziwnego zachowania). Do przycięcia obrazu służy convert
1 ImageMagick . Dane wyjściowe są zapisywane ze znacznikiem czasu jako nazwą pliku w katalogu domowym, możesz zmienić to zachowanie, edytując output
zmienną skryptu.
Przykładowe dane wyjściowe
Dzwoń bez (lub lepiej: z niewidocznym) oknem terminala
Przypuszczam, że nie chcesz, aby terminal blokował ekran za każdym razem, gdy robisz taki zrzut ekranu, więc oto rozwiązanie tego problemu; Wywołaj skrypt w następujący sposób (zakładając, że skrypt został zapisany jako ~/circular_screenshot.bash
):
xterm -geometry 0x0-1-1 -e ~/circular_screenshot.bash
Spowoduje to uruchomienie skryptu w niewidocznym oknie terminala (ikona z czerwonym „X” i niebieskim „T”), musisz tylko upewnić się, że jest skoncentrowany podczas pisania Enter. Możesz przypisać to polecenie do skrótu klawiaturowego, korzystając z ustawień środowiska pulpitu.
Ponieważ ImageMagick jest niesamowicie potężny, możesz dostosować ten skrypt do wyświetlania również innych kształtów, więc użyłem ellipse
tego samego promienia w kierunku x i y, aby narysować okrąg powyżej - zmień to na np., $radius,$(bc <<<"$radius*0.5")
Aby uzyskać elipsę o ekscentryczności powyżej 0.
1: Podjąłem podejście z tego wątku na imagemagick.org .