我希望能够在C++中使用RAW图像,所以我下载了一个已经编译好的DCRaw可执行文件。 我尝试自己编译它,但不断出现错误。 因此,我希望能够读取原始图像以C++并使用它们。 最好的方法是什么? 我应该找到一种方法将dcraw.c包含在我的项目中并调用其中的函数,还是应该使用system(...)函数访问EXE文件?
如果您不想直接在应用程序中操作原始数据,那么是的,您应该使用已经存在的原始图像解码器实现(例如 dcraw,就像您说的那样)。
以下是我将按偏好顺序执行的操作:
-
我会首先尝试找到另一个可作为静态或动态库版本的原始图像解码器并链接到该版本(dcraw 只有一个可执行文件)。
-
如果 #1 是不可能的,我会将 dcraw 的相关部分提取到静态库中并链接到该库。
-
如果不可能,我会像您建议的那样在我的代码中包含 .c 文件。
-
作为最后的手段,我只会从我的程序中执行 EXE。
话虽如此,如果您的应用程序仅用于实验目的,我认为在您的程序中使用 dcraw EXE 没有任何问题。否则我不会在专业应用程序中这样做。