11 votos

Vista previa de la imagen de la tubería

Tengo una utilidad de línea de comandos, llamémosla como: produce_image . Así que puedo hacer lo siguiente en la Terminal:

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

Además, tengo ImageMagick instalado y Xqartz también, para poder hacer lo siguiente:

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

Lo anterior abre una ventana X11 con la imagen.

¿Es posible conseguir una vista de imagen como con display también con Preview.app Por ejemplo, buscando algo como

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

Es posible previsualizar la imagen con Preview.app sin ¿usando un archivo intermedio?

Ps: por supuesto, puedo crear un comando como osxdisplay

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

y utilizarlo como

produce_image | osxdisplay

Pero el mérito de la pregunta es sobre la apertura de imágenes desde una tubería de shell sin archivos intermedios.

14voto

Prueba con

produce_image | open -a Preview.app -f

(Para ser sincero, me sorprendió bastante saber que esto funciona)

0 votos

¡UNA MARAVILLA! ¡Trabajando! ¡GRACIAS! :) (¿Dónde está documentado esto?)

0 votos

He echado un vistazo a man open y luego fue a ver si -f también funciona para documentos no textuales. ¡Tara!

0 votos

Estoy simplemente ciego :( Se me escapó un poco el _ -f* Lee la entrada desde la entrada estándar y abre los resultados en el editor de texto predeterminado_ parte. ¡Gracias de nuevo, eres el más grande!

2voto

Matt B Puntos 41

Esto muestra los datos de la imagen desde STDIN en el terminal en iTerm 2 ( https://www.iterm2.com/documentation-images.html ):

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

La función siguiente muestra una o varias imágenes en el terminal.

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;}

Para mostrar las imágenes a una altura máxima de 20 filas, añada ;height=20 .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X