将 JPEG/PNG 图像转换为 RAW 图像格式的 C++ 库

C++ library to convert JPEG/PNG images to RAW image format

我已经尝试搜索将 JPEG 和 PNG 转换为 RAW 图像格式(*.raw 格式)的一天,但找不到任何结果,所有结果都是 RAW 到 JPEG/PNG。最后我决定在这里问,希望能得到答案。

所以,我只想将 JPEG 和 PNG 格式的图像转换为 RAW 图像格式 (*.raw),为此我需要可以完成这项工作的 C++ 库。此外,如果您可以建议使用 C++ 实现它的一些分步过程将会有所帮助。因为我没有这方面的经验,也没有开始。

同样请指导我。非常感谢您的帮助。

谢谢

从技术上讲,您无法将 JPEG/PNG 转换为 RAW 图像。因为 RAW 图像包含大量从相机捕获的数据。 JPEG 图像是压缩图像格式,其中大部分信息被盗用。所以你不能写一个程序来破坏数据的撕裂并恢复原始的RAW图像。 (即使你写了一个程序,生成的RAW文件并不等同于原始捕获的RAW文件)

“原始”格式定义不明确。

根据您与谁交谈,这可能意味着制造商专有的未处理格式,例如:

  • 尼康的 NEF 格式或
  • 佳能的 CR2 格式或
  • Adobe 的 DNG 格式

几乎没有软件支持写这样的文件。 dcrawufraw支持阅读。

或者它可能表示没有 header 或大小信息的纯 RGB888 字节。许多图书馆都支持这个:

  • CImg 可能是最简单的 - link
  • OpenCV 可以做到
  • ImageMagick Magick++ 可以做到
  • libvips可以做到

您不需要实际编写任何 C/C++ 将 JPEG/PNG 转换为原始 RGB 字节,您只需使用 ImageMagick命令行:

magick input.png -depth 8 RGB:result.raw