Este es el comando pnmtojpeg 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
pnmtojpeg: convierte una imagen PNM en una imagen JFIF ("JPEG")
SINOPSIS
pnmtojpeg [ opciones ] [ nombre de archivo ]
DESCRIPCIÓN
pnmtojpeg convierte el archivo de imagen PBM, PGM o PPM con nombre, o la entrada estándar si no hay archivo
se nombra, a un archivo JFIF en la salida estándar.
pnmtojpeg utiliza la biblioteca JPEG de Independent JPEG Group para crear el archivo de salida. Ver
http://www.ijg.org para obtener información sobre la biblioteca.
"JFIF" es el nombre correcto para el formato de imagen comúnmente conocido como "JPEG". Estrictamente
hablando, JPEG es un método de compresión. El formato de imagen con compresión JPEG que
es, con mucho, el más común es JFIF. También hay un subformato de TIFF que usa JPEG
compresión.
EXIF es un formato de imagen que es un subformato de JFIF (es decir, un archivo JFIF que contiene un
Encabezado EXIF como marcador APP1). pnmtojpeg crea una imagen EXIF cuando especifica el
-exif .
OPCIONES
Las opciones básicas son:
--exif =especificaciónarchivo
Esta opción especifica que la imagen de salida debe ser EXIF (un subformato de JFIF),
es decir, tendrá un encabezado EXIF como marcador JFIF APP1. El contenido de eso
marcador son el contenido del archivo especificado. El valor especial - significa leer
el contenido del encabezado EXIF de la entrada estándar. No es válido especificar estándar
entrada tanto para el encabezado EXIF como para la imagen de entrada.
El archivo EXIF comienza con un campo de dos bytes que es la longitud del archivo,
incluido el campo de longitud, en binario puro, el byte más significativo primero. los
un valor especial de cero para el campo de longitud significa que no debe haber encabezado EXIF,
es decir, lo mismo que no -exif opción. Esto es útil para convertir un archivo de
JFIF a PNM usando jpegtopnm, luego transfórmalo, luego conviértalo de nuevo a JFIF con
pnmtojpegy no sabe si incluye o no un encabezado EXIF. jpegtopnm
crea un archivo EXIF que contiene nada más que dos bytes de cero cuando la entrada JFIF
El archivo no tiene encabezado EXIF. Por lo tanto, puede transferir cualquier encabezado EXIF desde la entrada
JFIF al JFIF de salida sin preocuparse de si un encabezado EXIF realmente
existe.
El contenido del archivo EXIF después del campo de longitud es el byte exacto por byte
contenido del marcador APP1, sin contar el campo de longitud, que constituye el
Encabezado EXIF.
--calidad =n
Escale las tablas de cuantificación para ajustar la calidad de la imagen. n es 0 (peor) a 100 (mejor);
el valor predeterminado es 75 (consulte a continuación para obtener más información).
--escala de grises
--escala de grises
Cree un archivo JFIF de escala de grises. Con esta opción, pnmtojpeg convierte la entrada de color a
escala de grises. Si no especifica esta opción, el archivo de salida está en formato de color
si la entrada es PPM y formato de escala de grises si la entrada es PBM o PGM.
En el caso de entrada PPM, incluso si todos los colores de la imagen son grises, la salida es
en formato de color. Por supuesto, los colores siguen siendo grises. La diferencia es
ese formato de color ocupa mucho más espacio y lleva más tiempo crearlo y procesarlo.
--optimizar
Realice la optimización de los parámetros de codificación de entropía. Sin esto, pnmtojpeg usos
parámetros de codificación predeterminados. --optimizar generalmente hace que el archivo JFIF sea un poco
más pequeño, pero pnmtojpeg corre algo más lento y necesita mucha más memoria. Imagen
la calidad y la velocidad de descompresión no se ven afectadas por --optimizar.
--progresivo
Cree un archivo JPEG progresivo (consulte a continuación).
--comment =texto
Incluya un marcador de comentario en la salida JFIF, con texto de comentario texto. Sin esto
opción, no hay marcadores de comentarios en la salida.
La --calidad La opción le permite compensar el tamaño del archivo comprimido con la calidad del
imagen reconstruida: cuanto mayor sea el ajuste de calidad, mayor será el archivo JFIF y
más cerca estará la imagen de salida de la entrada original. Normalmente desea utilizar el
configuración de calidad más baja (archivo más pequeño) que se descomprime en algo visualmente
indistinguible de la imagen original. Para este propósito, el ajuste de calidad debe ser
entre 50 y 95; el valor predeterminado de 75 suele ser correcto. Si ve defectos en
--calidad = 75, luego suba 5 o 10 conteos a la vez hasta que esté satisfecho con el resultado
imagen. (La configuración óptima variará de una imagen a otra).
--calidad = 100 genera una tabla de cuantificación de todos los 1, minimizando la pérdida en el
paso de cuantificación (pero todavía hay pérdida de información en el submuestreo, así como redondeo
error). Esta configuración es de interés principalmente para fines experimentales. Valores de calidad
por encima de aproximadamente 95 son No recomendado para uso normal; el tamaño del archivo comprimido aumenta
dramáticamente para casi ninguna ganancia en la calidad de la imagen de salida.
En la otra dirección, los valores de calidad por debajo de 50 producirán archivos muy pequeños de imagen baja.
calidad. Los ajustes de entre 5 y 10 pueden ser útiles para preparar un índice de una imagen grande.
biblioteca, por ejemplo. Tratar --calidad = 2 (o algo así) para algunos efectos cubistas divertidos. (Nota:
Los valores de calidad inferiores a 25 generan tablas de cuantificación de 2 bytes, que se consideran
opcional en el estándar JFIF. pnmtojpeg emite un mensaje de advertencia cuando le das tal
valor de calidad, porque algunos otros programas JFIF pueden no ser capaces de decodificar el resultado
expediente. Usar --base si necesita garantizar la compatibilidad con valores de baja calidad).
La --progresivo La opción crea un archivo "JPEG progresivo". En este tipo de archivo JFIF,
los datos se almacenan en múltiples escaneos de calidad creciente. Si el archivo se
transmitido a través de un enlace de comunicaciones lento, el decodificador puede utilizar el primer escaneo para mostrar
una imagen de baja calidad muy rápidamente, y luego puede mejorar la visualización con cada
escanear. La imagen final es exactamente equivalente a un archivo JFIF estándar de la misma calidad
configuración, y el tamaño total del archivo es aproximadamente el mismo, a menudo un poco más pequeño. Precaución:
JPEG progresivo aún no está ampliamente implementado, por lo que muchos decodificadores no podrán ver un
archivo JPEG progresivo en absoluto.
Opciones para usuarios avanzados:
--dct = int
Utilice el método DCT de enteros (predeterminado).
--dct = rápido
Utilice DCT de entero rápido (menos preciso).
--dct = flotar
Utilice el método DCT de coma flotante. El método de flotación es un poco más preciso.
que el método int, pero es mucho más lento a menos que su máquina tenga una flotación muy rápida
hardware de punto. También tenga en cuenta que los resultados del método de punto flotante pueden variar
ligeramente entre máquinas, mientras que los métodos enteros deberían dar los mismos resultados
En todas partes. El método de entero rápido es mucho menos preciso que los otros dos.
--restart =n
Emite un marcador de reinicio JPEG cada n Filas de MCU, o cada n Bloques de MCU si agrega B
al número. --reiniciar 0 (el valor predeterminado) significa que no hay marcadores de reinicio.
--suave =n
Suaviza la imagen de entrada para eliminar el ruido de tramado. n, que van de 1 a 100,
indica la fuerza del suavizado. 0 (el valor predeterminado) significa que no hay suavizado.
--maxmemory =n
Establezca un límite para la cantidad de memoria que se utilizará para procesar imágenes grandes. El valor está en
miles de bytes, o millones de bytes si agrega M al número. Para
ejemplo, --máx = 4 m selecciona 4,000,000 bytes. Si pnmtojpeg necesita más espacio, lo hará
utilizar archivos temporales.
--verboso
Imprima en el archivo de error estándar mensajes sobre el proceso de conversión. Esto puede
Ser útil para depurar problemas.
La --reiniciar la opción dice pnmtojpeg para insertar marcadores adicionales que permitan que un decodificador JPEG
resincronizar después de un error de transmisión. Sin marcadores de reinicio, cualquier daño a un
archivo comprimido normalmente arruinará la imagen desde el punto del error hasta el final de la
imagen; con los marcadores de reinicio, el daño generalmente se limita a la parte de la imagen hacia arriba
al siguiente marcador de reinicio. Por supuesto, los marcadores de reinicio ocupan espacio adicional. Nosotros
recomiendan --restart = 1 para imágenes que se transmitirán a través de redes poco fiables como
como Usenet.
La --liso La opción filtra la entrada para eliminar el ruido de escala fina. Esto suele ser útil
al convertir imágenes difuminadas a JFIF: se elimina un factor de suavizado moderado de 10 a 50
de patrones de tramado en el archivo de entrada, lo que resulta en un archivo JFIF más pequeño y una mejor
mirando la imagen. Sin embargo, un factor de suavizado demasiado grande hará que la imagen se vea borrosa.
Opciones para asistentes:
--base
Forzar la generación de tablas de cuantificación compatibles con la línea base. Esta abrazadera
valores de cuantificación a 8 bits incluso en configuraciones de baja calidad. (Este interruptor está mal
nombrado, ya que no garantiza que la salida sea realmente JPEG de referencia. Para
ejemplo, puedes usar --base y --progresivo juntos.)
--qtables =especificaciónarchivo
Utilice las tablas de cuantificación que se proporcionan en el archivo de texto especificado.
--qslots = n [, ...]
Seleccione qué tabla de cuantificación utilizar para cada componente de color.
--sample =HxV [, ...]
Establezca factores de muestreo JPEG para cada componente de color.
--scans =especificaciónarchivo
Utilice el script de escaneo proporcionado en el archivo de texto especificado. Consulte a continuación para obtener información sobre
escanear scripts.
Las opciones del "asistente" están pensadas para experimentar con JPEG. Si no sabes que
Tú lo estás haciendo, don't use ellos. Estos cambios se documentan más adelante en el archivo.
wizard.doc que viene con la biblioteca JPEG de Independent JPEG Group.
EJEMPLOS
Este ejemplo comprime el archivo PPM foo.ppm con un factor de calidad de 60 y guarda el
salida como foo.jpg:
pnmtojpeg --calidad = 60 foo.ppm > foo.jpg
gato foo.bmp | bmptoppm | pnmtojpeg > foo.jpg
Sugerencias
JFIF no es ideal para dibujos animados, dibujos de líneas y otras imágenes que tienen solo unos pocos
colores distintos. Para aquellos, prueba en su lugar pnmtopng or ppmtobmp. Si necesita convertir
tal imagen a JFIF, sin embargo, deberías experimentar con pnmtojpeg's --calidad y
--liso opciones para obtener una conversión satisfactoria. --liso 10 o así es a menudo útil.
La compresión JPEG se destaca por ser una "pérdida". Esto significa que, a diferencia de la mayoría
conversiones de gráficos, pierde información, lo que significa calidad de imagen, cuando convierte a
JFIF. Si convierte de PPM a JFIF y viceversa repetidamente, la pérdida de calidad de imagen
acumular. Después de unos diez ciclos, la imagen puede ser notablemente peor de lo que era después.
un ciclo.
Debido a esto, debe hacer toda la manipulación que tenga que hacer en la imagen en algunos
otro formato y conviértalo a JFIF como último paso. Y si puede guardar una copia en el
formato original, mucho mejor. PNG es una buena opción para un formato sin pérdidas,
pero bastante compacto. GIF es otra forma de hacerlo, pero es probable que no puedas crear un GIF
imagen sin deber mucho dinero a Unisys e IBM, titulares de las patentes de la LZW
compresión utilizada en el formato GIF.
La --optimizar opción de pnmtojpeg vale la pena usarlo cuando está haciendo una versión "final"
para publicar o archivar. También es una ventaja cuando usa configuraciones de baja calidad para hacer
archivos JFIF muy pequeños; la mejora porcentual es a menudo mucho mayor que en grandes
archivos. (En el presente, --optimizar El modo está automáticamente en efecto cuando genera un
archivo JPEG progresivo).
Otro programa, cjpeg, es similar. cjpeg es mantenido por Independent JPEG Group y
empaquetado con la biblioteca JPEG que pnmtojpeg utiliza para todo su trabajo JPEG. Porque
Eso, puede esperar que aproveche las funciones JPEG más actuales. Además, ya que tienes que
tener la biblioteca para ejecutar pnmtojpeg, pero no al revés, cjpeg puede ser más común
para todos.
Por otra parte, cjpeg no utiliza las bibliotecas NetPBM para procesar su entrada, ya que todos
las herramientas NetPBM como pnmtojpeg hacer. Esto significa que es menos probable que sea coherente con
todos los demás programas que se ocupan de los formatos NetPBM. Además, la sintaxis de comando de
pnmtojpeg es coherente con el de las otras herramientas de Netpbm, a diferencia de cjpeg.
ESCANEAR GUIONES
Use el -escanear opción para especificar un script de escaneo. O usa el -progresivo opción para especificar
un script de escaneo incorporado en particular.
En qué consiste un script de exploración y el formato básico del archivo de script de exploración
el asistente.doc archivo que viene con la biblioteca JPEG de Independent JPEG Group. Escanear
los scripts son los mismos para pnmtojpeg como son para cjpeg.
Esta sección contiene información adicional que no está, pero probablemente debería estar, en ese
documento.
Primero, existen muchas restricciones sobre lo que es un script de escaneo válido. La biblioteca JPEG y
así pnmtojpeg, comprueba minuciosamente cualquier incumplimiento de estas restricciones, pero
hace poco para decirle cómo el guión no cumple. Los mensajes son muy generales y
a veces falso.
Para empezar, las entradas para el coeficiente de CC deben ir antes que las entradas para el CA
coeficientes. El coeficiente de CC es el coeficiente 0; todos los demás coeficientes son AC
coeficientes. Entonces, en una entrada para el coeficiente DC, los dos números después de los dos puntos deben
ser 0 y 0. En una entrada para coeficientes AC, el primer número después de los dos puntos no debe ser
0.
En una entrada de DC, los componentes de color deben estar en orden creciente. Por ejemplo, "0,2,1" antes del
el colon está mal. También lo es "0,0,0".
En una entrada para un coeficiente AC, debe especificar solo un componente de color. Es decir, ahi
puede ser solo un número antes de los dos puntos.
En la primera entrada para un coeficiente particular para un componente de color en particular, el "Ah"
El valor debe ser cero, pero el valor de Al puede ser cualquier número de bit válido. En entradas posteriores,
Ah debe ser el valor de Al de la entrada anterior (para ese coeficiente para ese color
componente), y el valor de Al debe ser uno menos que el valor de Ah.
En última instancia, el script debe especificar al menos parte del coeficiente DC para cada color.
componente. De lo contrario, aparece el mensaje de error "El script no transmite todos los datos".
No es necesario especificar todos los bits del coeficiente de CC ni ninguno de los coeficientes de CA.
Existe una opción estándar en la creación de la biblioteca JPEG para omitir la capacidad de la secuencia de comandos de escaneo.
Si por alguna razón su biblioteca se creó con esta opción, recibirá el mensaje "Solicitado
la característica se omitió en tiempo de compilación. "
MEDIO AMBIENTE
JPEGMEM
Si se establece esta variable de entorno, su valor es el límite de memoria predeterminado. los
El valor se especifica como se describe para el --memoria máxima opción. Un explícito
--memoria máxima opción anula cualquier JPEGMEM.
Use pnmtojpeg en línea usando los servicios de onworks.net