Wenn wir Screenshots von ausgewählten Bereichen machen Ubuntu
(mit Shift+ Prt Scroder Ctrl+ Shift+ Prt Scr), wählen wir immer einen rechteckigen Bereich aus . Ich weiß also, dass ich das Bild mit einer Software wie Inkscape bearbeiten kann, um einen Kreis mit dem rechteckigen Bild zu erstellen, aber ich möchte wissen, ob ich eine Konfiguration ändern kann, um verschiedene Arten von Formen (hauptsächlich Kreise) auswählen zu können ) direkt wenn ich den Screenshot mache.
Ist es möglich?
scripts
software-recommendation
programming
screenshot
productivity
Rafael Muynarsk
quelle
quelle
Antworten:
Ich habe ein kleines Skript für kreisförmige Screenshots zusammengestellt. Sie benötigen die folgenden Pakete (obwohl es auch für andere Screenshot-Programme und Terminalemulatoren anpassbar ist):
Das Skript
Speichern Sie es als zB
~/circular_screenshot.bash
und machen Sie es ausführbar mitchmod +x ~/circular_screenshot.bash
. Wenn Sie es ausführen, werden Sie vom Skript zuerst aufgefordert, den Mauszeiger an die Mittelposition Enterzu bewegen und zu drücken und dann an eine Kantenposition zu bewegen (egal welche, das Skript berechnet den Radius aus der Entfernung) und erneut zu drücken Enter. Der Bildschirm flackert dann, während der Screenshot aufgenommen wird (ich empfehlescrot $temp_screenshot
stattdessen die Verwendung , er zeigt dieses seltsame Verhalten nicht.) Und ImageMagicksconvert
1 wird zum Zuschneiden des Bildes verwendet. Die Ausgabe wird mit einem Zeitstempel als Dateiname in Ihrem Ausgangsverzeichnis gespeichert. Sie können dieses Verhalten ändern, indem Sie dieoutput
Variable des Skripts bearbeiten .Beispielausgabe
Anruf ohne (oder besser: mit unsichtbarem) Terminalfenster
Ich nehme an, Sie möchten nicht, dass ein Terminal Ihren Bildschirm jedes Mal blockiert, wenn Sie einen solchen Screenshot erstellen. Hier ist eine Lösung dafür. Rufen Sie das Skript wie folgt auf (vorausgesetzt, das Skript wurde gespeichert als
~/circular_screenshot.bash
):Dadurch wird das Skript in einem unsichtbaren Terminalfenster ausgeführt (Symbol mit einem roten „X“ und einem blauen „T“). Sie müssen lediglich sicherstellen, dass es beim Tippen fokussiert ist Enter. Sie können diesen Befehl mithilfe der Einstellungen Ihrer Desktop-Umgebung einer Tastenkombination zuweisen.
Da ImageMagick unglaublich leistungsfähig ist, können Sie dieses Skript auch für die Ausgabe anderer Formen anpassen. Ich habe
ellipse
den Kreis oben in x- und y-Richtung mit demselben Radius gezeichnet. Ändern Sie diesen in z. B.$radius,$(bc <<<"$radius*0.5")
, um stattdessen eine Ellipse mit einer Exzentrizität über 0 zu erhalten.1: Ich habe den Ansatz aus diesem Thread auf imagemagick.org übernommen .
quelle
Ich habe hier einige Dinge über Screenshots entdeckt. Wenn wir Screenshots unter Ubuntu machen (meins ist 16.04), verwenden wir tatsächlich eine Software namens
gnome-screenshot
. Es ist eine Open Source Software, die in C geschrieben wurde und deren Quellcode auf GitHub unter folgendem Link zu finden ist :Nun, da gibt es eine Datei namens
screenshot-area-selection.c
, die meine Frage beantwortet. Es ist eine Datei mit 361 Codezeilen, daher werde ich sie hier nicht einfügen. Soweit ich diese Datei verstanden habe (nicht viel), werden viele Funktionen verwendet, die so strukturiert sind, dass eine rechteckige Form entsteht ... Wie in diesem Code:Mein Fazit ist also, dass es nicht möglich ist, eine Konfiguration zu ändern, um Screenshots mit zu machen,
gnome-screenshot
da der Code dafür nicht strukturiert ist ... Obwohl es möglich ist, den Code herunterzuladen, den Code selbst zu ändern, ihn neu zu kompilieren und dann meine eigene personalisierte Version zu verwenden vongnome-screenshot
.quelle
Mit der gleichen Idee der akzeptierten Antwort habe ich ein anderes Skript erstellt, um sechseckige Screenshots zu machen, und ich teile es hier, falls es für jemand anderen nützlich ist.
Beispielausgabe
Das Drehbuch
Der Prozess ist genau der gleiche wie bei der akzeptierten Antwort . In diesem Fall habe ich gerade den Skriptnamen geändert:
"Speichern Sie es als zB
~/hexagonal_screenshot.bash
und machen Sie es ausführbar mitchmod +x ~/hexagonal_screenshot.bash
. Wenn Sie es ausführen, fordert Sie das Skript zuerst auf, den Mauszeiger an die Mittelposition zu bewegen und die Eingabetaste zu drücken und dann an eine Kantenposition zu bewegen (egal welche, die Skript berechnet den Radius aus der Entfernung) und drücken Sie erneut die Eingabetaste. Der Bildschirm flackert dann, während der Screenshot aufgenommen wird (ich empfehlescrot $temp_screenshot
stattdessen, dieses merkwürdige Verhalten nicht zu zeigen.) und ImageMagicksconvert
wird zum Zuschneiden des Bildes verwendet. Die Ausgabe erfolgt Mit einem Zeitstempel als Dateinamen in Ihrem Home-Verzeichnis gespeichert, können Sie dieses Verhalten ändern, indem Sie dieoutput
Variable des Skripts bearbeiten . "zusätzliche Information
Falls jemand neugierig auf die Mathematik ist, hier ist, wie ich es gemacht habe. Das Erstellen eines Polygons mit einer anderen Anzahl von Kanten oder unterschiedlichen Formen mithilfe
Imagemagick
des Verfahrens ist dasselbe: Berechnen Sie und fügen Sie diesem Teil des Codes Punkte hinzu oder entfernen Sie sie"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"
.quelle