Este es el comando sng que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
sng - compilador / descompilador para gráficos de red programables
SINOPSIS
sng [-vV] [presentar...]
DESCRIPCIÓN
El sistema sng El programa se traduce entre el formato PNG (Portable Network Graphics) y SNG.
(Gráficos de red con secuencias de comandos). SNG es un minilenguaje imprimible y editable para
describiendo archivos PNG. Con sng, es fácil ver y editar fragmentos PNG exóticos, no
apoyado por editores de gráficos; Además, dado que SNG es fácil de generar a partir de scripts, sng puede
ser útil al final de una canalización que genera imágenes PNG mediante programación.
Una descripción de SNG consta de una serie de especificaciones de fragmentos en un texto editable simple
formato. Por lo general, se corresponden uno por uno con los fragmentos de PNG. Hay una excepción; los
La especificación del fragmento de IMAGEN se traduce automáticamente en un fragmento de IDAT (haciendo
entrelazado apropiado, compresión, etcétera).
Dado que no hay argumentos de archivo, sng traduce stdin a stdout. En este modo, comprueba la primera
personaje. Si ese carácter es imprimible, se supone que el flujo de entrada contiene SNG; sng
busca un líder #SNG e intenta traducir el archivo a PNG. Si el personaje es
no imprimible, se supone que el flujo de entrada contiene PNG; sng intenta traducirlo a
SNG.
Por cada archivo que sng funciona, realiza su conversión de acuerdo con la extensión del archivo
(.png o .sng). El archivo de resultados tiene el mismo nombre a la izquierda del punto que el original, pero el
extensión y tipo opuestos.
La opción -V hace sng identificarse a sí mismo y su versión, luego salir. La opción -v hace
sng informe sobre qué archivos está convirtiendo.
SNG IDIOMA SINTAXIS
En general, el lenguaje SNG está orientado a tokens con tokens separados por espacios en blanco.
En cualquier lugar donde pueda aparecer ese espacio en blanco, un líder de comentario '#' hace que todos los caracteres hasta el
siguiente nueva línea siguiente que se ignorará. Los caracteres `: 'y`;' son tratados como
espacios en blanco, excepto el `; ' termina un elemento de datos (ver más abajo).
En las descripciones de sintaxis siguientes, las líneas entre {} pueden aparecer en cualquier orden. Elementos
entre corchetes entre [] son opcionales; una secuencia entre corchetes por [] * puede repetirse cualquier número de
veces. Elementos separados por | son alternativas. Los elementos separados por signos más son un
conjunto de atributos; cualquier secuencia de uno o más de esos tokens de elementos es válida.
Los elementos , , , , son bytes numéricos, enteros cortos
literales numéricos, numéricos enteros largos y numéricos flotantes respectivamente (todos sin signo). los
El elemento es un literal numérico largo con signo. Todos los números usan convenciones de C; es decir,
son decimales a menos que estén encabezados por 0x (hexadecimal) o 0 (octal).
El elemento es cualquier número de literales de cadena de caracteres delimitados por comillas dobles.
Se interpretan los escapes de estilo C (\ n, \ t, \ b, \ r o \ seguidos de dígitos octales o hexadecimales). los
el resultado es la concatenación de todos los literales.
El elemento es una palabra clave PNG delimitada por comillas dobles; es decir, una cadena de no más
de 79 caracteres o espacios latin-1 imprimibles, sin iniciales ni finales y sin
espacios consecutivos.
A El elemento consta de una secuencia de especificaciones de bytes en cualquiera de los siguientes
formatos. Cualquiera o ';' termina un literal de datos; `} 'también finaliza el fragmento adjunto.
1. cadena El formato es un literal de cadena SNG o una secuencia de literales de cadena (ver más arriba). los
bytes de datos son el contenido de la cadena.
2. base64 El formato está señalado por el token inicial 'base64'. Esta codificación solo puede ser
se utiliza cuando los valores de todos los bytes son inferiores a 64. Codifica cada byte como un único
carácter, con dígitos decimales que representan los valores 0-9, seguido de AZ para 10-35,
seguido de az para 36-61, seguido de + para 62 y / para 63. El formato Base64 se puede utilizar si
la imagen tiene una profundidad de bits total (color más alfa) de cuatro o menos, o es una
imagen esparcida con 64 colores o menos. Se ignora el espacio en blanco. Tenga en cuenta que esta codificación es
sólo muy vagamente relacionado con la codificación RFC2045 base-64, que utiliza un mapeo diferente de
bytes a valores y admite la codificación de datos binarios arbitrarios.
3. hexagonal El formato está señalado por el símbolo inicial "hex". En formato hexadecimal, cada byte es
especificado por dos dígitos hexadecimales (0123456789abcdef), el más significativo primero. El espacio en blanco es
ignorado
4. P1 El formato es el formato Portable Bit Map (PBM) P1. A continuación, la altura y el ancho decimales; eso
Es un error fatal que no coincidan con las dimensiones del IHDR. Después de esto, el único
Se espera que los caracteres que no son espacios en blanco sean "0" y "1", con los valores obvios.
Se ignora el espacio en blanco.
5. P3 El formato es el formato Portable Pixel Map (PPM) P3. A continuación, la altura y el ancho decimales; eso
Es un error fatal que no coincidan con las dimensiones del IHDR. Un valor de canal máximo en
sigue decimal; Es un error fatal que cualquier valor de canal siguiente exceda este valor.
A continuación, se encuentran los valores triples de los canales decimales que representan los triples RGB. Espacio en blanco
separa los valores de los canales decimales, pero de lo contrario se ignora.
Un El elemento se puede expandir a:
( , , ) |
Es decir, es una lista de valores RGB entre paréntesis o una cadena que nombra un color llamado
en la base de datos X RGB. Tenga en cuenta que los nombres de color no son necesariamente portátiles entre hosts o
incluso pantallas, debido a diferentes gammas de pantalla y sesgos colorimétricos. Por esta razón,
el descompilador SNG genera nombres de colores en los comentarios.
Los segmentos de IMAGEN contienen datos ráster desempaquetados y no entrelazados. Habrá exactamente uno
IMAGEN por volcado SNG, que contiene los datos de píxeles de todos los fragmentos IDAT, a menos que la opción -i
Está encendido. En ese caso, habrá varios fragmentos de IDAT que contienen imágenes sin procesar (comprimidas)
datos.
El miembro de opciones de un fragmento de IMAGEN (si está presente) establece transformaciones de escritura de imagen,
proporcionando el tercer argumento de la llamada png_write_png () utilizada para la salida. Tenga en cuenta que para
imágenes con una profundidad de bits de menos de 8, hay una transformación de "empaquetado" predeterminada.
Consulte nuestras libpng(3) página de manual para más detalles.
Cada archivo SNG debe comenzar con la cadena "#SNG", seguida de la versión opcional de SNG
información, seguida de dos puntos (`: ', ASCII 58). El resto del primero
SNG ignora la línea.
Los comentarios en el diagrama de sintaxis describen la semántica prevista. Esta especificación debe ser
leer junto con el estándar PNG.
IDHDR {
altura
ancho
profundidad de bits
[usando escala de grises + paleta + color + alfa]
[con entrelazado] # Adam7 asumido si entrelazado en
}
PLTE {
[ ] * # Triples RGB o nombres de colores X
}
identificación {
}
gAMA { }
gestión de recursos humanos {
blanco ( , ) # Punto blanco xey
rojo ( , )
verde ( , )
azul ( , )
}
sRGB { } # Intención de colorimetría, rango 0-3
iCCP {# perfil del Consorcio Internacional del Color
nombre
perfil
}
BIT {
rojo # Solo imágenes en color
azul # Solo imágenes en color
verde # Solo imágenes en color
gris # Solo imágenes en escala de grises
alfa # Imágenes solo con alfa
}
bKGD {
rojo # Solo imágenes en color
azul # Solo imágenes en color
verde # Solo imágenes en color
gris # Solo imágenes en escala de grises
índice # Solo imágenes con paleta
}
HIST {
[, ] * # El recuento debe coincidir con el tamaño de la paleta
}
tRNS {
[gris ] # Imágenes en escala de grises solamente
[rojo ] # Imágenes en color verdadero solamente
[verde ] # Imágenes en color verdadero solamente
[azul ] # Imágenes en color verdadero solamente
[ ] * # Imágenes con paleta solamente
}
pHY {
xpixeles
píxeles
[por metro]
}
tiempo {
año
mes
día
hora
minuto
segundo
}
tEXt {# fragmento de texto ordinario
palabra clave
texto
}
zTXt {# Fragmento de texto comprimido
palabra clave
texto
}
iTXt {# palabra clave internacional UTF-8
idioma
palabra clave
traducido # Traducción de la palabra clave
texto
[comprimido]
}
apagado {
xoffset
desplazamiento
[unidad de píxeles | micrómetros] *
}
división {
nombre
profundidad
[ , , ] * # Color seguido de alfa y frecuencia
}
pCAL {
nombre
x0
x1
mapeo lineal | euler | exponencial | unidad hiperboli
[parámetros ]
}
escala {
metro de unidad | radianes
ancho
altura
}
IMAGEN {
opciones identidad + embalaje + packswap + invert_mono
+ shift + bgr + swap_alpha + invert_alpha + swap_endian + strip_filler
pixeles
}
gif {
disposición
aporte
demora
}
GIFx {
identificador # Debe tener 8 caracteres
código # Debe tener 3 caracteres
datos
}
privado {# Declaración de fragmentos privados
}
Use sng en línea usando los servicios de onworks.net