通过 Linux 命令将 WEBP 图片转换为 PNG
Convert WEBP images to PNG by Linux command
我有很多 webp format images in a folder but with .jpg
扩展名
abc-test.jpg
这是一张 webp
格式的图片。我希望它以相同名称的 .png
格式转换,因为我使用了这个命令并且它有效
find . -name "*.jpg" -exec dwebp {} -o {}.png \;
它将所有 webp
图像转换为 .png
,但问题是它正在像这样保存图像:
abc-test.jpg.png
但我的要求是保存时不带 .jpg
扩展名,例如
abc-test.png
将 sed 与 mv 一起使用是一件好事。它与模式匹配并替换为更新的模式。
for file in *.jpg;
do
mv "$file" "`echo $file | sed s/.jpg/.png/`"
done
如果你想保留旧文件而不是 mv 你可以使用 cp
如果您有很多 convert/rename,我建议您使用 GNU Parallel 并且不仅可以通过并行处理它们来更快地转换它们,而且还可以利用它们修改文件名的能力。
你要的命令是:
parallel dwebp {} -o {.}.png ::: *.jpg
其中 {.}
表示 "the filename without the original extension".
如果你也想递归到子目录,你可以使用:
find . -name "*.jpg" -print0 | parallel -0 dwebp {} -o {.}.png
如果你想要一个进度表,或者一个"estimated time of arrival",你可以在[=15=之后添加--progress
或--eta
]命令。
如果您想查看 GNU Parallel 会 运行,实际上 运行 没有任何内容,请添加 --dry-run
.
在这个 CPU 越来越 "fatter"(更多内核)而不是更快的时代,我向您推荐 GNU Parallel .
我用不需要 parallel
在系统中安装的短 oneliner 做到了
for x in `ls -1 *.jpg`; do dwebp {} -o ${x%.*}.png ::: $x; done
这适用于当前目录
我会尝试修改@mark-setchell 递归解决方案,使其看起来像这样:
for x in `find . -name "*.jpg"`; do dwebp {} -o ${x%.*}.png ::: $x; done
${x%.*}
部分是这里需要解释的部分 - 它告诉 bash 从 x
变量中获取 .
和点后的所有内容。
由于我没有检查这里的正则表达式是懒惰的还是贪婪的,所以对于带有更多点的名称很容易出现错误行为 - 因此可以进一步调整答案。
如果问题出在 linux 图片查看器上 - 这就是转换的原因 - 那么我发现:here
“在 Ubuntu 和其他 Linux 中添加对 GNOME Image Viewer 的 WebP 支持
默认情况下,照片查看器不支持 WebP 图片文件。但是,您可以通过安装 webp-pixbuf-loader 库来添加 WebP 支持。它不仅允许您在 GNOME 图像查看器中打开 WebP 文件,它还在文件资源管理器中显示 WebP 文件的缩略图。
在基于 Ubuntu 的 Linux 发行版中,您可以使用 PPA 安装此库。一一使用以下命令:"
sudo add-apt-repository ppa:krifa75/eog-ordissimo
sudo apt update
sudo apt install webp-pixbuf-loader
如何在 Linux
上将 .webp 图像转换为 .png
测试于 Linux Ubuntu 20.04
这个问题是 Google search of "linux convert .webp image to png" 的热门问题。因此,对于任何在这里绊倒并只想得到简单答案的人来说,这里是:
# 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
完成!您现在有 out.png
.
参考资料
- 我从
那里了解到 dwebp
我有很多 webp format images in a folder but with .jpg
扩展名
abc-test.jpg
这是一张 webp
格式的图片。我希望它以相同名称的 .png
格式转换,因为我使用了这个命令并且它有效
find . -name "*.jpg" -exec dwebp {} -o {}.png \;
它将所有 webp
图像转换为 .png
,但问题是它正在像这样保存图像:
abc-test.jpg.png
但我的要求是保存时不带 .jpg
扩展名,例如
abc-test.png
将 sed 与 mv 一起使用是一件好事。它与模式匹配并替换为更新的模式。
for file in *.jpg;
do
mv "$file" "`echo $file | sed s/.jpg/.png/`"
done
如果你想保留旧文件而不是 mv 你可以使用 cp
如果您有很多 convert/rename,我建议您使用 GNU Parallel 并且不仅可以通过并行处理它们来更快地转换它们,而且还可以利用它们修改文件名的能力。
你要的命令是:
parallel dwebp {} -o {.}.png ::: *.jpg
其中 {.}
表示 "the filename without the original extension".
如果你也想递归到子目录,你可以使用:
find . -name "*.jpg" -print0 | parallel -0 dwebp {} -o {.}.png
如果你想要一个进度表,或者一个"estimated time of arrival",你可以在[=15=之后添加--progress
或--eta
]命令。
如果您想查看 GNU Parallel 会 运行,实际上 运行 没有任何内容,请添加 --dry-run
.
在这个 CPU 越来越 "fatter"(更多内核)而不是更快的时代,我向您推荐 GNU Parallel .
我用不需要 parallel
在系统中安装的短 oneliner 做到了
for x in `ls -1 *.jpg`; do dwebp {} -o ${x%.*}.png ::: $x; done
这适用于当前目录
我会尝试修改@mark-setchell 递归解决方案,使其看起来像这样:
for x in `find . -name "*.jpg"`; do dwebp {} -o ${x%.*}.png ::: $x; done
${x%.*}
部分是这里需要解释的部分 - 它告诉 bash 从 x
变量中获取 .
和点后的所有内容。
由于我没有检查这里的正则表达式是懒惰的还是贪婪的,所以对于带有更多点的名称很容易出现错误行为 - 因此可以进一步调整答案。
如果问题出在 linux 图片查看器上 - 这就是转换的原因 - 那么我发现:here
“在 Ubuntu 和其他 Linux 中添加对 GNOME Image Viewer 的 WebP 支持 默认情况下,照片查看器不支持 WebP 图片文件。但是,您可以通过安装 webp-pixbuf-loader 库来添加 WebP 支持。它不仅允许您在 GNOME 图像查看器中打开 WebP 文件,它还在文件资源管理器中显示 WebP 文件的缩略图。
在基于 Ubuntu 的 Linux 发行版中,您可以使用 PPA 安装此库。一一使用以下命令:"
sudo add-apt-repository ppa:krifa75/eog-ordissimo
sudo apt update
sudo apt install webp-pixbuf-loader
如何在 Linux
上将 .webp 图像转换为 .png测试于 Linux Ubuntu 20.04
这个问题是 Google search of "linux convert .webp image to png" 的热门问题。因此,对于任何在这里绊倒并只想得到简单答案的人来说,这里是:
# 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
完成!您现在有 out.png
.
参考资料
- 我从
dwebp