Vista previa de la imagen de la tubería

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 ImageMagickinstalado y Xqartztambié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 displaytambié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.

Respuestas (2)

Intentar

produce_image | open -a Preview.app -f

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

¡EXCELENTE! ¡Laboral! ¡GRACIAS! :) (¿Dónde está documentado esto?)
Eché un vistazo man openy luego fui a ver si -ftambién funciona para documentos que no son de texto. ¡Tara!
¡Simplemente estoy ciego! :( Algo se perdió el _ -f* Lee la entrada de la entrada estándar y abre los resultados en la parte del editor de texto predeterminado. ¡Gracias de nuevo, eres EL Gran!
¿Hay alguna forma de hacer el mismo truco para la secuencia HTML?
@ab Si tiene una pregunta diferente, siéntase libre de hacerla usando el botón Hacer pregunta en la parte superior derecha. Incluya un enlace a esta pregunta si ayuda a proporcionar contexto. Además, explique qué quiere decir con "flujo HTML".
gracias por los consejos @patrix. Por secuencia HTML me refiero exactamente a la misma situación que se describe en esta respuesta, pero en lugar de una secuencia binaria con contenido de imagen, la secuencia de texto se canaliza a la aplicación de vista previa como cat index.html | open -a Preview.app -fescribí cat index.htmlpara ilustrar. En mi caso particular, esta es una salida html de flujo del procesador de rebajas

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.