我意外地将我的相机(尼康 D70)设置为仅以 NEF 格式拍摄而不是以 NEF+JPEG 格式拍摄。
显然,当我想要浏览所有内容时,这将是一个巨大的痛苦。我并不羡慕为了一张图片的渲染而等待几秒钟。
有什么方法可以将整套(数千张图片)批量转换为 JPEG 吗?
我正在运行 Windows 7 和 Xubuntu 12.04。
答案1
答案2
在 Ubuntu 上,一种解决方案是使用dcraw
将 NEF 转换为 PBM,pnmtopng
将 PBM 转换为 png。因此,打开终端并运行以下命令:
sudo apt-get install netpbm dcraw
我没有任何 .NEF 图像来测试这一点,但根据这一页, 你可以做:
将所有 NEF 图像转换为 PNG:
dcraw -c -w input.NEF | pnmtopng > output.png
要转换整个目录:
for filename in *.NEF ; do dcraw -c -w "$filename" | pnmtopng > "$filename.png" ; done
然而,可能最适合您批量图像处理需求的工具是图像魔术师。它是免费的、开源的、跨平台的,可以做几乎所有你能想到的事情,包括调整大小、裁剪、管理透明度、蒙太奇和在大多数图像格式之间转换。它本来是我的首选,但我发现一些(较旧的)帖子声称它不适用于 NEF。不过,他们的网站说它做,所以你应该尝试一下,无论如何,它真的值得学习。在 Ubuntu 上使用以下命令安装它:
sudo apt-get install imagemagick
要转换单个 .NEF:
convert foo.NEF foo.jpg
要转换当前目录中的所有 .NEF 文件 (将覆盖原件):
mogrify -format jpg *.NEF
要执行相同操作但保留原始文件,请convert
循环运行:
for img in *.NEF; do convert "$img" "$img.jpg"; done
答案3
如果您最终使用ImageMagick
,那么xargs
如果您实际上有数千张图像需要转换,我建议您使用,而不是使用循环for
。这样,您可以轻松提高并行性:
# Runs these conversions serially
ls *.NEF | sed 's#.NEF##' | xargs -I^ convert ^.NEF ^.jpg
# Runs these conversions with 8 different processes
ls *.NEF | sed 's#.NEF##' | xargs -P8 -I^ convert ^.NEF ^.jpg
答案4
您可以使用NEF转JPG。它是免费的并且可以进行批处理。