Kiedy wykonujemy zrzuty ekranu wybranych obszarów Ubuntu
(używając Shift+ Prt Scrlub Ctrl+ Shift+ Prt Scr), zawsze wybieramy prostokątny obszar . Wiem, że mogę po prostu edytować obraz w jakimś oprogramowaniu, takim jak Inkscape, aby utworzyć okrąg z prostokątnym obrazem, ale chciałbym wiedzieć, czy istnieje konfiguracja, którą mogę zmienić, aby móc wybrać różne rodzaje kształtów (głównie kółka) ) bezpośrednio podczas robienia zrzutu ekranu.
Czy to możliwe?
scripts
software-recommendation
programming
screenshot
productivity
Rafael Muynarsk
źródło
źródło
Odpowiedzi:
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):
Scenariusz
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życiescrot $temp_screenshot
zamiast tego, nie pokazuje tego dziwnego zachowania). Do przycięcia obrazu służyconvert
1 ImageMagick . Dane wyjściowe są zapisywane ze znacznikiem czasu jako nazwą pliku w katalogu domowym, możesz zmienić to zachowanie, edytującoutput
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
):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 .
źródło
Odkryłem tutaj kilka rzeczy na temat zrzutów ekranu. Kiedy wykonujemy zrzuty ekranu na Ubuntu (moja 16.04), faktycznie używamy oprogramowania o nazwie
gnome-screenshot
. To oprogramowanie typu open source napisane w C, a jego kod źródłowy można znaleźć w GitHub pod tym linkiem :Jest tam plik o nazwie,
screenshot-area-selection.c
który odpowiada na moje pytanie. Jest to plik z 361 liniami kodu, więc nie zamierzam go tutaj wklejać. Ale o ile rozumiem ten plik (niewiele), używa wielu funkcji, które są zbudowane wokół budowania prostokątnego kształtu ... Jak w tym fragmencie kodu:Doszedłem więc do wniosku, że nie można zmienić żadnej konfiguracji, aby robić zrzuty ekranu,
gnome-screenshot
ponieważ jej kod nie jest do tego przeznaczony ... Chociaż można pobrać kod, sam go zmienić, skompilować ponownie, a następnie użyć własnej wersji spersonalizowanej zgnome-screenshot
.źródło
Korzystanie z tego samego pomysłu zaakceptowaną odpowiedź , stworzyłem inny skrypt do robienia zrzutów heksagonalnych i udostępniam go tutaj, na wypadek, gdyby był użyteczny dla kogoś innego.
Przykładowe dane wyjściowe
Scenariusz
Proces jest dokładnie taki sam zaakceptowanej odpowiedzi . W tym przypadku właśnie zmieniłem nazwę skryptu:
„Zapisz go jako np.
~/hexagonal_screenshot.bash
Ichmod +x ~/hexagonal_screenshot.bash
uruchom za pomocą . Po uruchomieniu skrypt najpierw poprosi cię o przesunięcie kursora myszy do pozycji środkowej i naciśnij Enter, a następnie o przesunięcie go do pozycji krawędziowej (bez względu na to, skrypt oblicza promień na podstawie odległości) i ponownie naciśnij klawisz Enter. Ekran migocze, gdy wykonywany jest zrzut ekranu (zalecam użyciescrot $temp_screenshot
zamiast tego, nie pokazuje tego dziwnego zachowania.) i ImageMagick'sconvert
jest używany do przycięcia obrazu. zapisany ze znacznikiem czasu jako nazwą pliku w katalogu domowym, możesz zmienić to zachowanie, edytując plikoutput
zmienną skryptu. ”Dodatkowe informacje
Jeśli ktoś jest ciekawy matematyki, oto jak to zrobiłem. Procedura tworzenia wielokąta z inną liczbą krawędzi lub różnych kształtów przy użyciu
Imagemagick
tej procedury byłaby taka sama: wykonaj obliczenia matematyczne i dodaj lub usuń punkty w tej części kodu"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"
.źródło