ฉันรวบรวมสคริปต์เล็ก ๆ สำหรับสกรีนช็อตแบบวงกลมคุณต้องมีแพ็คเกจต่อไปนี้ (แม้ว่ามันจะปรับให้เหมาะกับโปรแกรมสกรีนช็อตอื่นและเทอร์มินัลอีมูเลเตอร์)
sudo apt install xdotool gnome-screenshot imagemagick xterm
สคริปต์
#!/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"
บันทึกเป็นเช่นและทำให้มันปฏิบัติการด้วย~/circular_screenshot.bash
chmod +x ~/circular_screenshot.bash
เมื่อคุณเรียกใช้สคริปต์แรกขอให้คุณเลื่อนเคอร์เซอร์ของเมาส์ไปที่ตำแหน่งศูนย์และกดEnterแล้วจะย้ายไปยังตำแหน่งที่ขอบ (ไม่ว่าสคริปต์คำนวณรัศมีจากระยะไกล) Enterและอีกครั้งกด จากนั้นหน้าจอจะกะพริบขณะที่จับภาพหน้าจอ (ฉันแนะนำให้ใช้scrot $temp_screenshot
แทนจะไม่แสดงพฤติกรรมแปลก ๆ นี้) และ ImageMagick convert
1ใช้เพื่อครอบตัดรูปภาพ เอาต์พุตถูกบันทึกด้วยการประทับเวลาเป็นชื่อไฟล์ในโฮมไดเร็กทอรีของคุณคุณสามารถเปลี่ยนพฤติกรรมนี้ได้โดยแก้ไขoutput
ตัวแปรของสคริปต์
ตัวอย่างผลลัพธ์
โทรโดยไม่ต้อง (หรือดีกว่า: ด้วยหน้าต่างเทอร์มินัลที่มองไม่เห็น)
ฉันคิดว่าคุณไม่ต้องการให้เทอร์มินัลปิดกั้นหน้าจอของคุณทุกครั้งที่คุณสร้างหน้าจอเช่นนี้ดังนั้นนี่เป็นวิธีแก้ปัญหาสำหรับสิ่งนั้น เรียกสคริปต์ดังต่อไปนี้ (สมมติว่าสคริปต์ถูกบันทึกเป็น~/circular_screenshot.bash
):
xterm -geometry 0x0-1-1 -e ~/circular_screenshot.bash
นี้จะทำงานสคริปต์ในหน้าต่าง terminal ที่มองไม่เห็น (ไอคอนกับ“X” สีแดงและสีฟ้า“T”), Enterคุณเพียงแค่ต้องให้แน่ใจว่ามันเน้นเมื่อคุณพิมพ์ คุณสามารถกำหนดคำสั่งนี้ให้กับแป้นพิมพ์ลัดโดยใช้การตั้งค่าสภาพแวดล้อมเดสก์ทอปของคุณ
เนื่องจาก ImageMagick นั้นทรงพลังอย่างเหลือเชื่อคุณสามารถปรับสคริปต์นี้ให้เป็นรูปร่างอื่นได้เช่นกันฉันจึงใช้ellipse
รัศมีเดียวกันทั้งในทิศทาง x และ y เพื่อวาดวงกลมด้านบน - เปลี่ยนเป็น e กรัม$radius,$(bc <<<"$radius*0.5")
เพื่อให้ได้วงรีที่มีความเยื้องศูนย์เหนือ 0 แทน
1: ผมเอาวิธีการจากหัวข้อนี้บน imagemagick.org