通过 Linux 命令将 WEBP 图像转换为 PNG [关闭]
Posted
技术标签:
【中文标题】通过 Linux 命令将 WEBP 图像转换为 PNG [关闭]【英文标题】:Convert WEBP images to PNG by Linux command [closed] 【发布时间】:2019-08-05 06:40:11 【问题描述】:我有很多类似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
【问题讨论】:
【参考方案1】:如果您有很多需要转换/重命名,我建议您使用 GNU Parallel,不仅可以通过并行处理来更快地转换它们,还可以利用修改文件名的能力。
你想要的命令是:
parallel dwebp -o ..png ::: *.jpg
其中.
表示“没有原始扩展名的文件名”。
如果你也想递归到子目录,你可以使用:
find . -name "*.jpg" -print0 | parallel -0 dwebp -o ..png
如果你想要一个进度表,或者“预计到达时间”,你可以在parallel
命令之后添加--progress
或--eta
。
如果您想查看 GNU Parallel 会运行什么,而不实际运行任何东西,请添加 --dry-run
。
我向您推荐 GNU Parallel 在这个 CPU 变得“更胖”(更多内核)而不是更快的时代。
【讨论】:
非常有趣,谢谢。对于不熟悉 webp 的任何人(就像我一样),您可能首先需要安装以下软件包:sudo aptitude install parallel webp
。对于具有正确扩展名的 webp 文件,只需执行 parallel dwebp -o ..png ::: *.webp
。
更多信息:GNU Parallel,- - 备注:https://www.gnu.org/software/parallel/parallel_cheat.pdf【参考方案2】:
如何在 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
。
参考文献
-
我从the question itself了解到
dwebp
【讨论】:
【参考方案3】:我用的是不需要在系统中安装parallel
的短单线器
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
变量中点之后的所有内容。
由于我没有检查这里的正则表达式是懒惰还是贪婪,因此对于带有更多点的名称很容易出现行为不端 - 因此可以进一步调整答案。
【讨论】:
最好使用for x in *.jpg
而不是解析ls
的输出 - 请参阅mywiki.wooledge.org/ParsingLs
你的命令中间都有多余的:::
- 可能是 GNU Parallel 的剩余部分
@MarkSetchell 谢谢,TIL - 如果一切正常,将检查并修复答案,以便尽可能干净:)【参考方案4】:
如果问题出在 linux 图像查看器上——这就是转换的原因——那么我发现:here
"在 Ubuntu 和其他 Linux 中为 GNOME Image Viewer 添加 WebP 支持 默认情况下,照片查看器不支持 WebP 图像文件。但是,您可以通过安装 webp-pixbuf-loader 库来添加 WebP 支持。它不仅允许您在 GNOME Image Viewer 中打开 WebP 文件,还可以在文件资源管理器中显示 WebP 文件的缩略图。
在基于 Ubuntu 的 Linux 发行版上,您可以使用 PPA 安装此库。一一使用以下命令:"
sudo add-apt-repository ppa:krifa75/eog-ordissimo
sudo apt update
sudo apt install webp-pixbuf-loader
【讨论】:
【参考方案5】:最好将 sed 与 mv 一起使用。它匹配模式并替换为较新的模式。
for file in *.jpg;
do
mv "$file" "`echo $file | sed s/.jpg/.png/`"
done
如果你想保留旧文件而不是 mv 你可以使用 cp
【讨论】:
完全没用。这些是不同的格式,更改扩展名是不够的。以上是关于通过 Linux 命令将 WEBP 图像转换为 PNG [关闭]的主要内容,如果未能解决你的问题,请参考以下文章