Descripción
output_format_image_width y
output_format_image_height
(ambos con un valor predeterminado de 1024). Los píxeles no cubiertos por el resultado se rellenan de negro
(en los modos RGB y escala de grises) o de negro transparente (en modo RGBA).
El modo de color se determina automáticamente a partir de los nombres y tipos de las columnas del resultado:
Los nombres de las columnas se comparan sin distinguir entre mayúsculas y minúsculas. Si el modo de color no puede
determinarse de forma inequívoca (por ejemplo, por nombres de columna desconocidos,
v mezclado con r/g/b/a, o por faltar uno de r/g/b),
la consulta genera una excepción.
Para los canales de píxel, los valores enteros se limitan a [0, 255] y los valores de coma flotante
se limitan a [0, 1] y luego se escalan a [0, 255].
La posición de cada registro en la imagen se determina mediante uno de estos dos modos:
- Implícito (el predeterminado — cuando no está presente ni
xniy). Cada registro corresponde a un único píxel; los píxeles se rellenan en orden de barrido: de izquierda a derecha y de arriba abajo. - Explícito (cuando están presentes las columnas
xey, ambas de tipo entero). Las columnasxeyindican las coordenadas del píxel. Los registros con coordenadas fuera de la imagen se ignoran silenciosamente. Si hay varios registros con las mismas coordenadas, prevalece el último (algoritmo del pintor).
Ejemplo de uso
Coordenadas implícitas (una fila por píxel), RGB
Coordenadas explícitas, escala de grises
Animación
t de tipo entero, el formato genera un PNG animado (APNG) en lugar de una
imagen estática. Los registros se agrupan en fotogramas según el valor de t, que representa el desfase temporal relativo del
fotograma. Cada fotograma es una imagen independiente: el lienzo está vacío al inicio de cada fotograma y, en el
modo de coordenadas implícitas, el cursor vuelve a empezar desde la esquina superior izquierda. La columna t se puede combinar con
cualquiera de los modos de coordenadas.
La unidad de t viene dada por
output_format_image_time_multiplier_seconds
y
output_format_image_time_divisor_seconds:
una unidad de t equivale a output_format_image_time_multiplier_seconds / output_format_image_time_divisor_seconds
segundos. Con los valores predeterminados (1 y 60), una unidad de t equivale a 1/60 de segundo.
Un fotograma se muestra hasta que comienza el siguiente, por lo que su duración es la diferencia entre dos valores consecutivos
de t. El último fotograma se muestra durante el mismo tiempo que el anterior. La animación se repite indefinidamente.
Transmisión de fotogramas
t y permite que t llegue en cualquier orden.
La configuración
output_format_image_streaming_animation
escribe cada fotograma en cuanto se detecta el siguiente valor de t. Solo se mantiene un búfer de imagen en memoria y los
fotogramas llegan a la salida mientras la consulta aún se está ejecutando, por lo que un visor puede mostrarlos a medida que se generan.
A cambio:
tdebe ser no decreciente; de lo contrario, la consulta genera una excepción. AñadaORDER BY tsi es necesario.- Se desconoce el número de fotogramas cuando debe escribirse la cabecera, por lo que el fragmento
acTLdeclara un límite superior en lugar del recuento exacto. Los navegadores reproducen este tipo de archivo, pero los decodificadores que se basan en el recuento declarado (por ejemplo,Pillowy algunas herramientasAPNGde línea de comandos) informan de un error después del último fotograma real. Una animación de un solo fotograma es la excepción: para cuando se escribe ese fotograma, se ha leído todo el resultado, por lo que el recuento se declara exactamente y la salida cumple la especificación.
iterm. El protocolo sixel no puede representar
animaciones, y el protocolo de gráficos Kitty solo anima mediante un flujo independiente de comandos por fotograma,
no mediante un flujo de datos animado, por lo que mostraría únicamente el primer fotograma; ambos modos rechazan un resultado con
una columna t.
Mostrar imágenes en la terminal
PNG escribe los bytes sin procesar de la imagen. La configuración
output_format_image_terminal_mode
hace que el formato muestre la imagen directamente en la terminal mediante un protocolo de imagen en línea: