我正在使用Basler的Pylon库,这是GenICam的扩展。
他们在那里定义了一个保存图像的功能:
virtual void Save (EImageFileFormat imageFileFormat, const String_t &filename, CImagePersistenceOptions *pOptions=NULL) const
其中String_t是GenICam :: gcstring的扩展
有关gcstring的信息如下:
Portable string implementation. More...
#include <new>
#include <string>
#include <iostream>
#include <Base/GCTypes.h>
Classes
class GenICam::gcstring
A string class which is a clone of std::string. More...
Namespaces
GenICam
Contains definitions of GenICam types and exceptions.
Macros
#define GCSTRING_NPOS size_t(-1)
Indicates either 'not found' or 'all remaining characters'.
Functions
std::istream & GenICam::getline (std::istream &is, GenICam::gcstring &str)
std::istream & GenICam::getline (std::istream &is, GenICam::gcstring &str, char delim)
std::ostream & operator<< (std::ostream &ostr, const GenICam::gcstring &str)
std::istream & operator>> (std::istream &istr, GenICam::gcstring &str)
我需要使用从long int生成的文件名来保存图像,我尝试了很多方法但是失败了,任何人都能提供帮助吗?
对于仍在寻找答案的人,String_t接受一个const char数组作为输入。所以你可以简单地将你的long
转换为std::string
,然后将string.c_str()
传递给String_t
构造函数。
所以要从long转换为std::string
,请执行以下操作:
#include <string>
long myNumber = getNumber();
std::string s = std::to_string(myNumber);
然后你可以这样保存图像:
CImagePersistence::Save(ImageFileFormat_Tiff, String_t(s.c_str()), *image);
注意:我正在使用塔5。