Dairesel ekran görüntüleri için küçük bir komut dosyası hazırladım, aşağıdaki paketlere ihtiyacınız var (diğer ekran görüntüsü programları ve terminal emülatörleri için de uyarlanabilir):
sudo apt install xdotool gnome-screenshot imagemagick xterm
Senaryo
#!/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"
Örneğin olarak kaydedin ~/circular_screenshot.bash
ve ile çalıştırılabilir yapın chmod +x ~/circular_screenshot.bash
. Çalıştırdığınızda, komut dosyası önce fare imlecini merkez konuma getirmenizi Enterve sonra da tuşuna basarak bir kenar konumuna getirmenizi ister (hangisinin önemli olduğu, komut dosyasının yarıçapı uzaktan hesapladığını) ve tekrar düğmesine basın Enter. Ekran daha sonra ekran görüntüsü alınırken titriyor ( scrot $temp_screenshot
bunun yerine bu garip davranışı göstermemesini öneririm .) Ve ImageMagick'in convert
1'i görüntüyü kırpmak için kullanılır. Çıktı, ana dizininizdeki dosya adı olarak bir zaman damgası ile kaydedilir output
, komut dosyasının değişkenini düzenleyerek bu davranışı değiştirebilirsiniz .
Örnek çıktı
Terminal penceresi olmadan (veya daha iyisi: görünmez) çağrı
Sanırım böyle bir ekran görüntüsü her yaptığınızda ekranınızı engelleyen bir terminale sahip olmak istemezsiniz, işte bunun için bir çözüm; Komut dosyasını aşağıdaki gibi çağırın (komut dosyasının şu şekilde kaydedildiği varsayılarak ~/circular_screenshot.bash
):
xterm -geometry 0x0-1-1 -e ~/circular_screenshot.bash
Bu, komut dosyasını görünmez bir terminal penceresinde (kırmızı “X” ve mavi “T” olan bir simge) çalıştırır, yazarken odaklandığından emin olmanız yeterlidir Enter. Masaüstü ortamınızın ayarlarını kullanarak bu komutu bir klavye kısayoluna atayabilirsiniz.
ImageMagick inanılmaz derecede güçlü olduğundan, bu komut dosyasını diğer şekilleri de çıkaracak şekilde uyarlayabilirsiniz, ellipse
yukarıdaki daireyi çizmek için hem x hem de y yönünde aynı yarıçapla kullandım - bunun yerine örneğin $radius,$(bc <<<"$radius*0.5")
0'ın üzerinde eksantrikliği olan bir elips elde etmek için bunu değiştirin .
1: Yaklaşımı imagemagick.org'daki bu konudan aldım .