bash - 如何使用 djpeg 和 pnmtopng 将 jpeg 转换为 png?

标签 bash shell image-conversion

练习是使用 djpeg 和 pnmtopng 将 jpeg 图像转换为 png。将其转换为 pnm 的第一步工作完美,但 pnmtopng 不起作用。

第一步工作得很好,程序创建了一个 pnm 文件。 [文件]/image/T1vTn.png

#!/bin/sh
for file in *.jpeg; do
djpeg -pnm -outfile "$file".pnm  "$file"
pnmtopng  *.pnm
done

但是 pnmtopng 做了一些与此相关的操作,但没有任何反应 [终端] /image/xnbgr.jpg 完美的情况是来自此的 png 文件..

最佳答案

你可以这样做:

for file in *.jpeg; do
    djpeg -pnm "$file" | pnmtopng > "$file.png"
done

您现有代码的问题是 pnmtopng将 PNG 文件写入 stdout这是你的情况下的终端,所以我将其重定向到一个带有 > 的文件。在重定向输入和输出时,我们也可以做同样的事情并得到 jpeg写在 stdout并将其挂入 pnmtopng可以从 stdin 读取- 这样我们就不需要将中间 PNM 文件写入磁盘。


或者像这样使用ImageMagick:

magick mogrify -format png *.jpeg

关于bash - 如何使用 djpeg 和 pnmtopng 将 jpeg 转换为 png?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56108790/

相关文章:

python - 使用 Pillow 从 CMYK 转换为 RGB 与 Photoshop 不同

linux - 如何按顺序打印包含某些字符串的行?

linux - 将一批文件连接到一个文件夹中

linux - 如何在 shell 脚本中更改文件的内容?

linux - 基于两列在awk中增加变量

C++ gdi::Bitmap 到内存中的 PNG 图像

bash - grep匹配后获取下一个单词

c - Ncurses 读取小键盘键和转义

shell - 有人可以为我提供一个简单的搜索和替换脚本吗?

java - 将 BufferedImage 转换为 ImageIcon