2012-05-11 31 views
3

我正在写(或者说接管)一个用Visual C++编写的小型网络摄像头捕获程序。该相机是Allied Vision Technologies公司的产品,使用PvAPI.h,GUi是wxwidgets。当他们无法在wxWidgets下加载tiff图像时,该项目被放弃。我已经查明问题到一个单一的线,可惜这是在帧捕获关闭相机使用摄像头采集方法加载tiff图像时使用wxWidgets问题

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(); 
+0

'不允许wxWidgets导入tiff'这是什么意思?你是否收到错误信息,程序崩溃,是什么? – ravenspoint

+0

当我运行编译版本,Visual C++说“TIFF:错误阅读图像”,并在其详细说明“TIFF模块:图像”“对不起,请求的压缩方法未配置”“TIFF:错误阅读图像。 – user1388360

+0

我建议将这些细节添加到您的问题中,以便每个人都可以轻松阅读。 – ravenspoint

回答

0

它们可能具有不支持压缩的TIFF库。 IIRC,默认情况下它没有打开。

作为一个测试,尝试将TIFF加载到像Gimp这样的免费绘图程序中,并将其保存为未压缩并查看您的wx加载代码是否有效。

如果这是问题,那么你需要用zlib重建你的wx库作为tiff库的一部分。由于这是OS /编译器依赖,你需要谷歌。另外,它可能是wx的版本已过期。