练习是使用 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/