如何使用 djpeg 和 pnmtopng 将 jpeg 转换为 png?
How to convert a jpeg to an png with djpeg and pnmtopng?
练习是使用 djpeg 和 pnmtopng 将 jpeg 图像转换为 png。将其转换为 pnm 的第一步非常有效,但 pnmtopng 不起作用。
第一步工作得很好,程序创建了一个 pnm 文件。
[文件]https://i.imgur.com/tpMHDRb.png
#!/bin/sh
for file in *.jpeg; do
djpeg -pnm -outfile "$file".pnm "$file"
pnmtopng *.pnm
done
但是 pnmtopng 做了一些链接,但没有任何反应
[航站楼]https://i.imgur.com/FMDujkr.jpg
完美的案例是来自这个的 png 文件..
你可以这样做:
for file in *.jpeg; do
djpeg -pnm "$file" | pnmtopng > "$file.png"
done
您现有代码的问题是 pnmtopng
在 stdout
上写入 PNG 文件,在您的情况下是终端,因此我已将其重定向到 >
的文件.在重定向输入和输出的同时,我们也可以做同样的事情,让 jpeg
写在 stdout
上并将其挂钩到 pnmtopng
中,它可以从 stdin
读取 - 这样我们就不会不需要将中间 PNM 文件写入磁盘。
或者像这样使用 ImageMagick:
magick mogrify -format png *.jpeg
练习是使用 djpeg 和 pnmtopng 将 jpeg 图像转换为 png。将其转换为 pnm 的第一步非常有效,但 pnmtopng 不起作用。
第一步工作得很好,程序创建了一个 pnm 文件。 [文件]https://i.imgur.com/tpMHDRb.png
#!/bin/sh
for file in *.jpeg; do
djpeg -pnm -outfile "$file".pnm "$file"
pnmtopng *.pnm
done
但是 pnmtopng 做了一些链接,但没有任何反应 [航站楼]https://i.imgur.com/FMDujkr.jpg 完美的案例是来自这个的 png 文件..
你可以这样做:
for file in *.jpeg; do
djpeg -pnm "$file" | pnmtopng > "$file.png"
done
您现有代码的问题是 pnmtopng
在 stdout
上写入 PNG 文件,在您的情况下是终端,因此我已将其重定向到 >
的文件.在重定向输入和输出的同时,我们也可以做同样的事情,让 jpeg
写在 stdout
上并将其挂钩到 pnmtopng
中,它可以从 stdin
读取 - 这样我们就不会不需要将中间 PNM 文件写入磁盘。
或者像这样使用 ImageMagick:
magick mogrify -format png *.jpeg