Cómo convertir imágenes .webp a .png en Linux
Probado en Linux Ubuntu 20.04
Esta pregunta es el resultado principal de la búsqueda en Google de "linux convert .webp image to png". Por lo tanto, para cualquiera que tropiece aquí y solo quiera esa respuesta simple, aquí está:
# 1. Install the `webp` tool
sudo apt update
sudo apt install webp
# 2. Use it: convert in.webp to out.png
dwebp in.webp -o out.png
¡Hecho! Ahora tienes out.png
.
Referencias
- Me enteré de
dwebp
de la pregunta misma
Si tiene muchos para convertir/renombrar, le recomiendo que use GNU Parallel y no solo convertirlos más rápido haciéndolos en paralelo, sino también aprovechar la capacidad de modificar los nombres de archivo.
El comando que desea es:
parallel dwebp {} -o {.}.png ::: *.jpg
donde el {.}
significa "el nombre del archivo sin la extensión original" .
Si también desea recurrir a subdirectorios, puede usar:
find . -name "*.jpg" -print0 | parallel -0 dwebp {} -o {.}.png
Si desea un medidor de progreso o una "hora estimada de llegada" , puede agregar --progress
o --eta
después del parallel
comando.
Si quiere ver qué GNU Parallel se ejecutaría, sin ejecutar realmente nada, agregue --dry-run
.
Elogio a GNU Parallel para ti en esta era en la que las CPU se están volviendo "más pesadas" (más núcleos) en lugar de más rápido.
Lo hice con un delineador corto que no requiere parallel
para ser instalado en el sistema
for x in `ls -1 *.jpg`; do dwebp {} -o ${x%.*}.png ::: $x; done
Y esto funciona para el directorio actual
Intentaría modificar la solución recursiva de @mark-sechell para que se viera así:
for x in `find . -name "*.jpg"`; do dwebp {} -o ${x%.*}.png ::: $x; done
El ${x%.*}
parte es la que requiere una palabra de explicación aquí:le dice a bash que tome .
y todo después del punto del x
variable. Es probable que se comporte mal para los nombres con más puntos, ya que no verifiqué si la expresión regular aquí es perezosa o codiciosa; por lo tanto, la respuesta se puede ajustar aún más.