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'CbCr.
Nota: No se admiten los 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á estadísticas. Si usas “-” como nombre de salida, el resultado se dirigirá a “stdout”. -- string
- Especifica de forma explícita el archivo de entrada. Por ejemplo, esta opción es útil si el archivo de entrada comienza con un “-”. Esta opción debe aparecer como
last
. Se ignorará cualquier otra opción posterior. -h, -help
- Breve resumen de uso.
-H, -longhelp
- Un resumen de todas las opciones posibles
-version
- Imprime el número de versión (como major.minor.revision) y sal.
-lossless
- Codifica la imagen sin pérdidas. En el caso de las imágenes con un área completamente 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érdida. Esta opción ajusta los valores de píxeles para ayudar a la compresibilidad, pero tiene un impacto mínimo en la calidad visual. Activa automáticamente el modo de compresión sin pérdida.
El rango es de
0
(máximo de procesamiento previo) a100
(sin procesamiento previo, el valor predeterminado). El valor habitual 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 la compresión con pérdida (predeterminado), un factor pequeño produce un archivo más pequeño con menor calidad. La mejor calidad se logra usando un valor de
100
.En el caso de la compresión sin pérdidas (especificada por la opción
-lossless
), un factor pequeño permite una mayor velocidad de compresión, pero produce un archivo más grande. La compresión máxima se logra usando 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 el 9 el más lento. El modo rápido produce archivos más grandes que los más lentos. Un buen valor predeterminado es-z 6
. Esta opción es en realidad un atajo para algunos parámetros de configuración predefinidos de calidad y método. Si luego se usan las opciones-q
o-m
, se invalidará 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 de alfa sin pérdida se logra usando un valor de100
, mientras que los valores más bajos generan una compresión con pérdida. El valor predeterminado es100
.-preset string
Especifica un conjunto de parámetros predefinidos para adaptarse a un tipo particular de material de origen. Los valores posibles son
default
,photo
,picture
,drawing
,icon
ytext
.Dado que
-preset
reemplaza los valores de los otros parámetros (excepto-q
), es preferible que esta opción aparezca primero en el orden de los argumentos.-m int
Especifica el método de compresión que usarás. Este parámetro controla la compensación entre la velocidad de codificación y el tamaño y la calidad 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á el aumento de calidad. Un valor más bajo puede generar un tiempo de procesamiento más rápido a expensas de un tamaño de archivo más grande y una menor calidad de compresión.-crop x_position y_position width height
Recorta la fuente a un rectángulo con la esquina superior izquierda en las coordenadas (
x_position
,y_position
) y el 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 de
width
xheight
. Si alguno de los parámetros de ancho o alto es0
(pero no ambos), el valor se calculará y 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érdidas, ahorra cuatro veces el tamaño comprimido (por lo general). De esta manera, la codificación será más lenta y el resultado será 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 dejar esta marca desactivada tendrá algunos efectos secundarios en el flujo de bits, ya que fuerza ciertas funciones de flujo de bits, como la cantidad de particiones (forzadas a
1
). Ten en cuenta quecwebp
imprime un informe más detallado del tamaño del flujo de bits cuando usas esta opción.
Opciones con pérdida
Estas opciones solo son efectivas cuando se realiza la codificación con pérdida (la configuración predeterminada, con o sin alfa).
-size int
- Especifica un tamaño objetivo (en bytes) que se intentará alcanzar para el resultado comprimido. El compresor realizará varias pasadas 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 el resultado comprimido.
El compresor realizará varias pasadas 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 predeterminado es1
. Si se usaron las opciones-size
o-psnr
, pero no se especificó-pass
, se usará un valor predeterminado de "6" Si se especifica-pass
, pero no-size
ni-psnr
, se usará un PSNR objetivo de 40 dB. -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 un tamaño similar a su equivalente JPEG (para la misma configuración de
-q
), pero con menos distorsión visual.
Opciones avanzadas:
-f int
- Especifica la seguridad 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 la decodificación de la imagen. Cuanto más alto sea el valor, más suave será la imagen. Por lo general, los valores típicos se encuentran 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 pronunciado). El valor predeterminado es0
. -strong
- Utiliza un filtro estricto (si se usa un filtro gracias a la opción
-f
). El filtrado seguro está activado de forma predeterminada. -nostrong
- Inhabilita el filtrado estricto (si se usa un filtro gracias a la opción
-f
) y usa el filtrado simple en su lugar. -sharp_yuv
- Usa una conversión YUV más precisa y nítida de RGB->YUV si es necesario. Ten en cuenta que este proceso es más lento que la conversión predeterminada de RGB->YUV "rápida".
-sns int
- Especifica la amplitud de la forma del ruido espacial. La forma del ruido espacial (sn abreviado) se refiere a una colección general de algoritmos integrados que se usan para decidir qué área de la imagen debe usar relativamente menos bits y qué otro lado transferirlos mejor. El rango posible va de
0
(el algoritmo está desactivado) a100
(el efecto máximo). El valor predeterminado es50
. -segments int
- Cambia el número de particiones que se usarán durante la segmentación del algoritmo sns. Los segmentos deben estar dentro del rango de
1
a4
. El valor predeterminado es4
. Esta opción no tiene efecto para los métodos 3 y posteriores, a menos que se use-low_memory
. -partition_limit int
- Para disminuir la calidad, limita la cantidad de bits que usan algunos macrobloques.
El rango es de
0
(sin degradación, el valor predeterminado) a100
(degradación completa). Los valores útiles suelen estar entre30
y70
para 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 el macrobloque se omite, a qué segmento pertenece, si está codificado en modo intra 4 × 4 o intra 16 × 16 y, por último, los modos de predicción que se usarán para cada uno de los subbloques. En el caso de una imagen muy grande, 512k solo deja espacio para unos pocos bits por macrobloque de 16 x 16. El mínimo absoluto es 4 bits por macrobloque. La información de omisión, segmento y modo puede consumir casi todos estos 4 bits (aunque es poco probable), lo que resulta problemático para imágenes muy grandes. El factorpartition_limit
controla la frecuencia con la que se usará el modo más costoso (en 4×4). Esto es útil en caso de que se alcance el límite de 512,000 y se muestre el siguiente mensaje: Código de error: 6 (PARTITION0_OVERFLOW: Partition #0 es demasiado grande para admitir 512k). Si el uso de-partition_limit
no es suficiente para cumplir con la restricción de 512k, se deben usar menos segmentos a fin de guardar más bits de encabezado por macrobloque. Consulta la opción-segments
. Ten en cuenta que las opciones-m
y-q
también influyen en las decisiones del codificador y en su capacidad para alcanzar este límite.
Opciones de registro
Estas opciones controlan el nivel de salida:
-v
- Imprime información adicional (en particular, el tiempo de codificación).
-print_psnr
- Calcula y, luego, informa el PSNR (proporción pico-señal/ruido) promedio.
-print_ssim
- Calcula y también informa el SSIM (métrica de similitud estructural; consulta https://en.wikipedia.org/wiki/SSIM para obtener más detalles).
-print_lsim
- Calcula y, luego, informa la métrica de similitud local (la suma del error más bajo entre los vecinos de píxeles ubicados).
-progress
- Informa el progreso de la codificación en porcentajes.
-quiet
- No imprimas nada.
-short
- Solo imprime información breve (tamaño del archivo de salida y PSNR) para realizar pruebas.
-map int
- Mapa ASCII adicional de salida de la información de codificación. Los valores posibles del mapa van de
1
a6
. Esto solo sirve para facilitar la depuración.
Opciones adicionales
Las opciones más avanzadas son las siguientes:
-s width height
- Especifica que el archivo de entrada en realidad consta de muestras de Y'CbCr sin procesar según la recomendación ITU-R BT.601, en formato lineal 4:2:0. El plano de luma tiene un tamaño de
width
×height
. -pre int
- Especifica algunos pasos de procesamiento previo. El uso de un valor de
2
activará la interpolación pseudoaleatoria dependiente de la calidad durante la conversión RGBA->YUVA (solo compresión con pérdida). -alpha_filter string
- Especifica el método de filtrado predictivo para el plano alfa. Uno 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 (ninguna, horizontal, vertical, gradiente). El modobest
probará cada uno de ellos a la vez y elegirá el que proporcione 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 que se usa para la compresión alfa:
0
o1
. El algoritmo0
no denota 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. El valor predeterminado está desactivado para ayudar a la compresibilidad.
-blend_alpha int
- Esta opción combina el canal alfa (si está presente) con la fuente usando 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 separada por comas de metadatos para copiar de la entrada a la salida, si está presente. Valores válidos:
all
,none
,exif
,icc
yxmp
. El valor predeterminado esnone
.Ten en cuenta que es posible que cada formato de entrada no admita todas las combinaciones.
-noasm
Inhabilita todas las optimizaciones de ensamblado.
Errores
Informa todos los errores en la Herramienta de seguimiento de errores: https://bugs.chromium.org/p/webp
Se aceptan parches. Para comenzar, consulta esta página: 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.
El árbol de fuentes más reciente está disponible en https://chromium.googlesource.com/webm/libwebp/.
Esta página del manual se escribió para el proyecto Debian (y otras personas pueden usarla).