Nombre
cwebp
: comprime un archivo de imagen en un archivo WebP.
Sinopsis
cwebp [options] input_file -o output_file.webp
Descripción
cwebp
comprime una imagen con el formato WebP. El formato de entrada puede ser PNG, JPEG, TIFF, WebP o muestras sin procesar de Y&C3Cr.
Nota: No se admiten archivos PNG y WebP animados.
Opciones
Las opciones básicas son las siguientes:
-o string
- Especifica el nombre del archivo WebP de salida. Si se omite,
cwebp
realizará la compresión, pero solo informará las estadísticas. Usar " como nombre de salida dirigirá la salida a 'stdout'. -- string
- Especifica explícitamente el archivo de entrada. Esta opción es útil, por ejemplo, si el archivo de entrada comienza con un '' Esta opción debe aparecer
last
. Se ignorarán las demás opciones después. -h, -help
- Breve resumen de uso
-H, -longhelp
- Un resumen de todas las opciones posibles
-version
- Imprime el número de versión (como main.minor.revision) y sal.
-lossless
- Codifica la imagen sin pérdida. En el caso de las imágenes con área totalmente transparente, los valores de píxeles invisibles (R/G/B o Y/U/V) se conservarán solo si se usa la opción
-exact
. -near_lossless int
- Especifica el nivel de procesamiento previo de imágenes casi sin pérdidas. Esta opción ajusta los valores de píxeles para facilitar la compresión, pero tiene un impacto mínimo en la calidad visual. Activa el modo de compresión sin pérdida automáticamente.
El rango es de
0
(procesamiento previo máximo) a100
(sin procesamiento previo, el valor predeterminado). El valor típico es de aproximadamente60
. Ten en cuenta que, en ocasiones, las pérdidas con-q 100
pueden generar mejores resultados. -q float
Especifica el factor de compresión para los canales RGB entre
0
y100
. El valor predeterminado es75
.En el caso de una compresión con pérdida (de forma predeterminada), un factor pequeño produce un archivo más pequeño con una calidad inferior. La mejor calidad se logra mediante un valor de
100
.En el caso de una compresión sin pérdidas (especificada mediante la opción
-lossless
), un factor pequeño habilita una velocidad de compresión más rápida, pero produce un archivo más grande. La compresión máxima se logra mediante un valor de100
.-z int
Activa el modo de compresión
lossless
, con el nivel especificado entre 0 y 9, en el que el nivel 0 es el más rápido y 9 es el más lento. El modo rápido produce archivos de mayor tamaño que los más lentos. Un buen valor predeterminado es-z 6
. Esta opción es en realidad un acceso directo para algunas configuraciones predefinidas de calidad y método. Si las opciones-q
o-m
se usan posteriormente, invalidarán el efecto de esta opción.-alpha_q int
Especifica el factor de compresión para la compresión alfa entre
0
y100
. La compresión sin pérdida de alfa se logra con un valor de100
, mientras que los valores más bajos dan como resultado una compresión con pérdida. El valor predeterminado es100
.-preset string
Especifica un conjunto de parámetros predefinidos para que se adapten a un tipo de material de origen en particular. Los valores posibles son:
default
,photo
,picture
,drawing
,icon
ytext
.Dado que
-preset
reemplaza los otros valores (excepto-q
), esta opción debería aparecer primero en el orden de los argumentos.-m int
Especifica el método de compresión que se usará. Este parámetro controla la compensación entre la velocidad de codificación y la calidad y el tamaño del archivo comprimido. Los valores posibles varían de
0
a6
. El valor predeterminado es4
. Cuando se usan valores más altos, el codificador pasará más tiempo inspeccionando posibilidades de codificación adicionales y decidirá la ganancia de calidad. Un valor más bajo puede generar un tiempo de procesamiento más rápido a costa de un tamaño de archivo mayor y una calidad de compresión menor.-crop x_position y_position width height
Recorta la fuente en un rectángulo con la esquina superior izquierda en las coordenadas (
x_position
,y_position
) y un tamaño dewidth
xheight
. Esta área de recorte debe estar contenida por completo dentro del rectángulo de origen. Nota: El recorte se aplica antes de cualquier escalamiento.-resize width height
Cambia el tamaño de la fuente a un rectángulo con el tamaño
width
xheight
. Si cualquiera de los parámetros de ancho o altura (pero no ambos) es0
, el valor se calculará para preservar la relación de aspecto. Nota: El escalamiento se aplica después del recorte.-mt
Si es posible, usa varios subprocesos para la codificación.
-low_memory
Para reducir el uso de memoria de la codificación con pérdida, ahorra cuatro veces el tamaño comprimido (por lo general,) Esto hará que la codificación sea más lenta y el resultado sea un poco diferente en tamaño y distorsión. Esta marca solo es efectiva para los métodos 3 y posteriores, y está desactivada de forma predeterminada. Ten en cuenta que si dejas esta marca desactivada, se producirán algunos efectos secundarios en la transmisión de bits, ya que fuerza algunas características de flujo de bits como la cantidad de particiones (fuerza forzada a
1
). Ten en cuenta que, cuando se usa esta opción,cwebp
imprime un informe más detallado del tamaño de la transmisión de bits.
Opciones con pérdida
Estas opciones solo son efectivas cuando se realiza una codificación con pérdida (el valor predeterminado, con o sin alfa).
-size int
- Especifica un tamaño de destino (en bytes) para intentar alcanzar el resultado comprimido. El compresor realizará varios pases de codificación parcial para acercarse lo más posible a este objetivo. Si se usan
-size
y-psnr
, prevalecerá el valor-size
. -psnr float
- Especifica un PSNR objetivo (en dB) para intentar alcanzar la salida comprimida.
El compresor realizará varios pases de codificación parcial para acercarse lo más posible a este objetivo. Si se usan
-size
y-psnr
, prevalecerá el valor-size
. -pass int
- Establece una cantidad máxima de pases para usar durante la dicotomía que usan las opciones
-size
o-psnr
. El valor máximo es10
y el valor predeterminado es1
. Si se usaron las opciones-size
o-psnr
, pero-pass
no se especificó, se usará un valor predeterminado de '6&339; -af
- Activa el filtro automático. Este algoritmo dedicará más tiempo a optimizar la intensidad del filtrado para alcanzar una calidad bien equilibrada.
-jpeg_like
- Cambia la asignación de parámetros internos para que coincida mejor con el tamaño esperado de compresión JPEG. Por lo general, esta marca producirá un archivo de salida de tamaño similar a su equivalente en JPEG (para la misma configuración de
-q
), pero con menos distorsión visual.
Opciones avanzadas:
-f int
- Especifica la intensidad del filtro de desbloqueo, entre
0
(sin filtro) y100
(filtrado máximo). Un valor de0
desactivará cualquier filtro. Un valor más alto aumentará la intensidad del proceso de filtrado aplicado después de decodificar la imagen. Cuanto más alto sea el valor, más suave será la imagen. Los valores típicos suelen estar en el rango de20
a50
. -sharpness int
- Especifica la nitidez del filtro (si se usa). El rango es de
0
(más nítido) a7
(menos nítido). El valor predeterminado es0
. -strong
- Usa filtros sólidos (si se usan con la opción
-f
). El filtro fuerte está activado de forma predeterminada. -nostrong
- Inhabilita el filtrado sólido (si se usa con la opción
-f
) y usa un filtro simple. -sharp_yuv
- Si es necesario, usa una conversión YUV en RGB más precisa y precisa. Ten en cuenta que este proceso es más lento que el de la conversión predeterminada de &YUV RGB.
-sns int
- Especifica la amplitud de la formación de ruido espacial. La determinación del ruido espacial (o sns, por sus siglas en inglés) hace referencia a una colección general de algoritmos integrados que se usa para decidir qué área de la imagen debe usar relativamente menos bits y dónde más transferir estos bits. El rango posible va de
0
(el algoritmo está desactivado) a100
(el efecto máximo). El valor predeterminado es50
. -segments int
- Cambia la cantidad de particiones que se usarán durante la segmentación del algoritmo sns. Los segmentos deben encontrarse en el rango de
1
a4
. El valor predeterminado es4
. Esta opción no tiene efecto en los métodos 3 en adelante, a menos que se use-low_memory
. -partition_limit int
- Para reducir la calidad, limita la cantidad de bits que usan algunos macrobloques.
El rango es
0
(sin degradación, el valor predeterminado) a100
(degradación completa). Los valores útiles suelen ser de30
a70
en el caso de las imágenes moderadamente grandes. En el formato VP8, la llamada partición de control tiene un límite de 512,000 y se usa para almacenar la siguiente información: si se omite el macrobloque, a qué segmento pertenece, si está codificado como modo intra 4x4 o interno 16x16 y, por último, los modos de predicción que se usarán para cada uno de los subbloques. Para una imagen muy grande, 512k solo deja espacio para unos pocos bits por macrobloque de 16x16. El mínimo absoluto es de 4 bits por macrobloque. La información de omisión, segmento y modo puede usar casi todos estos 4 bits (aunque es poco probable), lo que es problemático para imágenes muy grandes. El factorpartition_limit
controla la frecuencia con la que se usará el modo más costoso (intra 4x4). Esto es útil en caso de que se alcance el límite de 512k y se muestre el siguiente mensaje: Código de error: 6 (PARTITION0_OVERFLOW: la partición #0 es demasiado grande para ajustarse a 512k). Si el uso de-partition_limit
no es suficiente para cumplir con la restricción de 512,000, se deben usar menos segmentos a fin de ahorrar más bits de encabezado por macrobloque. Consulta la opción-segments
.
Opciones de registro
Estas opciones controlan el nivel de salida:
-v
- Imprime información adicional (en especial, el tiempo de codificación).
-print_psnr
- Informa y calcula el PSNR (proporción de señal a ruido máxima) promedio.
-print_ssim
- Calcula e informa el SSIM promedio (métrica de similitud estructural, consulta https://en.wikipedia.org/wiki/SSIM para obtener más detalles).
-print_lsim
- Informa y calcula la métrica de similitud local (suma del error más bajo entre los vecinos de píxeles ubicados).
-progress
- Informa el progreso de la codificación en porcentaje.
-quiet
- No imprimas nada.
-short
- Solo imprime información breve (tamaño de archivo de salida y PSNR) para realizar pruebas.
-map int
- Genera un mapa ASCII adicional de la información de codificación. Los valores posibles del mapa varían de
1
a6
. Esto solo tiene como objetivo ayudar a la depuración.
Opciones adicionales
Las opciones más avanzadas son las siguientes:
-s width height
- Especifica que el archivo de entrada consiste en muestras de &CbCr sin procesar según la recomendación ITU-R BT.601, en formato lineal 4:2:0. El plano de la luma tiene un tamaño de
width
xheight
. -pre int
- Especifica algunos pasos de procesamiento previo. El uso de un valor de
2
activará la interpolación seudoaleatoria que depende de la calidad durante la conversión de RGBA - YUVA (solo compresión con pérdida). -alpha_filter string
- Especifica el método de filtrado predictivo para el plano alfa. Una de
none
,fast
obest
, en orden creciente de complejidad y lentitud. La cantidad predeterminada esfast
. De forma interna, el filtrado Alfa se realiza con cuatro predicciones posibles (ninguno, horizontal, vertical, gradiente). El modobest
probará cada modo a la vez y elegirá el que tenga el tamaño más pequeño. El modofast
solo intentará formar una suposición a priori sin probar todos los modos. -alpha_method int
- Especifica el algoritmo utilizado para la compresión Alfa:
0
o1
. El algoritmo0
denota la compresión,1
usa el formato WebP sin pérdida para la compresión. El valor predeterminado es1
. -exact
- Conserva los valores RGB en el área transparente. La configuración predeterminada está desactivada para facilitar la compresión.
-blend_alpha int
- Esta opción combina el canal alfa (si está presente) con el origen y usa el color de fondo especificado en hexadecimal como 0xrrggbb. Luego, el canal Alfa se restablece al valor opaco
255
. -noalpha
- Si usas esta opción, se descartará el canal alfa.
-hint string
- Especifica la sugerencia sobre el tipo de imagen de entrada. Los valores posibles son:
photo
,picture
ograph
. -metadata string
Una lista de metadatos separados por comas para copiar de la entrada a la salida, si está presente. Valores válidos:
all
,none
,exif
,icc
,xmp
. El valor predeterminado esnone
.Ten en cuenta que cada formato de entrada puede no ser compatible con todas las combinaciones.
-noasm
Inhabilita todas las optimizaciones de ensamblado.
Errores
Informa todos los errores a la Herramienta de seguimiento de errores: https://bugs.chromium.org/p/webp.
Se aceptan parches. Consulta esta página para comenzar: https://www.webmproject.org/code/contribute/submitting-patches/
Ejemplos
cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png
Autores
cwebp
es parte de libwebp
y lo escribió el equipo de WebP.
La última versión del árbol de fuentes está disponible en https://chromium.googlesource.com/webm/libwebp/.
Esta página manual se escribió para el proyecto de Debian (y es posible que la usen otros).