Tengo una utilidad de línea de comando, llamémosla como: produce_image
. Entonces puedo hacer lo siguiente en la Terminal:
$ produce_image > some.jpg
$ open some.jpg #opens Preview.app
Además, he ImageMagick
instalado y Xqartz
también, por lo que puedo 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 lograr tal 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 obtener una vista previa de la imagen Preview.app
sin usar un archivo intermedio?
Ps: por supuesto, puedo crear un comando comoosxdisplay
tmpfile=$(mktemp /tmp/foobar.XXXXXX)
cat - > "$tmpfile"
open "$tmpfile"
rm -f $tmpfile
y usarlo 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.
Intentar
produce_image | open -a Preview.app -f
(Para ser honesto, me sorprendió bastante saber que esto funciona)
Esto muestra datos de imagen de 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 siguiente función muestra una o más 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 imágenes a una altura máxima de 20 filas, agregue ;height=20
.
clt60
sin ladera
man open
y luego fui a ver si-f
también funciona para documentos que no son de texto. ¡Tara!clt60
AB
sin ladera
AB
cat index.html | open -a Preview.app -f
escribícat index.html
para ilustrar. En mi caso particular, esta es una salida html de flujo del procesador de rebajas