通过 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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将jpg图像转换为webp

使用 Pillow 将图像转换为 webP

Javascript 将图像加载到 Offscreen Canvas 中,执行 webp 转换

将webp转换为png

webp图像批量转换软件推荐——XnConvert

当从 jpg 转换为质量值为 100 的 webp 时,图像大小会增加