我正在编写(或者更确切地说是接管)一个用 Visual C++ 编写的小型网络摄像机捕获程序。相机是 Allied Vision Technologies 的产品,使用 PvAPI.h
,GUI 是用 wxwidgets
编写的。当他们无法在 wxWidgets 下加载 tiff 图像时,该项目被放弃了。我已经将问题追溯到一条线,遗憾的是它是从相机捕获帧的那条线
if( !ImageWriteTiff(GCamera.Filename,pFrame) )
如果我注释掉这一行,下面的行就可以正常工作了
image = new wxStaticBitmap(mainPanel, wxID_ANY, wxBitmap("C:\\path-to\\horse.tif",
wxBITMAP_TYPE_TIF), wxPoint(244,64));
出于某种原因,如果我使用 ImageWriteTiff
则不允许 wxWidgets 导入 tiff。我还确保导入所有图像处理程序
wxInitAllImageHandlers();
最佳答案
他们可能构建了不支持压缩的 TIFF 库。 IIRC,默认情况下未打开。
作为测试,尝试将 TIFF 加载到免费的绘画程序(如 Gimp)中并以未压缩的方式保存它,然后查看您的 wx 加载代码是否有效。
如果这是问题所在,那么您需要使用 zlib 作为 tiff 库的一部分重建您的 wx 库。由于这是依赖于操作系统/编译器的,因此您需要用谷歌搜索。还有可能是wx的版本太旧了。
关于c++ - 使用相机获取方法时无法使用 wxWidgets 加载 tiff 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10543878/