c++ - 使用相机获取方法时无法使用 wxWidgets 加载 tiff 图像

标签 c++ visual-c++ wxwidgets tiff

我正在编写(或者更确切地说是接管)一个用 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/

相关文章:

c++ - 试除法代码在 Windows 上运行 32 位比在 Linux 上运行 64 位快 2 倍

c++ - Linux 上的 NPAPI (npruntime)

c - 我应该在 MSVC - C 上使用安全版本的 POSIX 函数吗

python - wxpython在wxpython staticbitmap中刷新图像

macos - MacVisibilityChanged() 对于 Cocoa 不会被触发

c++ - 为什么 g++ 无法找到已安装的系统包含?

c++ - 返回指向类成员函数的指针

c++ - 是否有任何控制循环展开的预处理器指令?

c++ - wxWidgets - 通过 DLL 添加项目到 sizer

c++ - 滚动时 wxScrolledWindow 中的图像损坏