Vorschaubild vom Rohr

Ich habe ein Befehlszeilenprogramm, nennen wir es: produce_image. Also ich kann im Terminal folgendes machen:

$ produce_image > some.jpg
$ open some.jpg #opens Preview.app

Außerdem habe ich ImageMagickund auch installiert Xqartz, damit ich Folgendes tun kann:

$ produce_image | display #the display is a command from ImageMagick suite

Das obige öffnet ein X11-Fenster mit dem Bild.

Ist eine solche Bildansicht wie mit displayauch mit möglich Preview.app? suche zb nach so etwas wie:

$ produce_image | Preview.app #of course, this isn't working
$ produce_image | /Applications/Preview.app/Contents/MacOS/Preview #nor this

Ist eine Vorschau des Bildes möglich, Preview.app ohne eine Zwischendatei zu verwenden?

Ps: natürlich kann ich einen Befehl erstellen wie zosxdisplay

tmpfile=$(mktemp /tmp/foobar.XXXXXX)
cat - > "$tmpfile"
open "$tmpfile"
rm -f $tmpfile

und verwenden Sie es als

produce_image | osxdisplay

Der Wert der Frage besteht jedoch darin, Bilder aus einer Shell-Pipe ohne Zwischendateien zu öffnen.

Antworten (2)

Versuchen

produce_image | open -a Preview.app -f

(Um ehrlich zu sein, war ich ziemlich überrascht zu erfahren, dass das funktioniert)

GROSSARTIG! Arbeiten! DANKE! :) (Wo ist das dokumentiert?)
Ich habe mir das angeschaut man openund bin dann geschaut, ob -fdas auch für Nicht-Text-Dokumente funktioniert. Tara!
Ich bin einfach blind! :( Etwas verfehlt das _ -f* Liest Eingaben von der Standardeingabe und öffnet die Ergebnisse im Standard-Texteditor_-Teil. Nochmals vielen Dank, Sie sind DER Großartige!
Gibt es eine Möglichkeit, den gleichen Trick für den HTML-Stream durchzuführen?
@ab Wenn Sie eine andere Frage haben, können Sie sie gerne über die Schaltfläche "Frage stellen" oben rechts stellen. Fügen Sie einen Link zu dieser Frage hinzu, wenn dies hilfreich ist, um den Kontext bereitzustellen. Bitte erklären Sie auch, was Sie mit "HTML-Stream" meinen.
danke für die tipps @patrix. Mit HTML-Stream meine ich genau die gleiche Situation wie in dieser Antwort beschrieben, aber anstelle des binären Streams mit Bildinhalten wurde der Textstream an die Vorschau-App geleitet, wie cat index.html | open -a Preview.app -fich cat index.htmlzur Veranschaulichung geschrieben habe. In meinem speziellen Fall ist dies eine Stream-HTML-Ausgabe vom Markdown-Prozessor

Dies zeigt Bilddaten von STDIN im Terminal in iTerm 2 an ( https://www.iterm2.com/documentation-images.html ):

cat file.png|printf "\e]1337;File=inline=1:$(base64)\a\n"

Die folgende Funktion zeigt ein oder mehrere Bilder im Terminal an.

ima(){ local f;for f;do printf "\e]1337;File=inline=1:$(if [[ $f = *://* ]];then curl -Ls "$f";else cat -- "$f";fi|base64)\a\n";done;}

Um Bilder mit einer maximalen Höhe von 20 Zeilen anzuzeigen, fügen Sie hinzu ;height=20.