我正在使用Exiv2来获取照片的元数据。我想使用这些元数据的一些价值。但是我不知道如何将exiv2值转换为整数。这是我的绳索。
int metadetascanner(const char* img)
{
try
{
Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(img);
image->readMetadata();
Exiv2::ExifData &exif = image->exifData();
Exiv2::Exifdatum &rotation = exif["Exif.Image.Orientation"];
if (exif.empty())
{
cerr << "no exif" << endl;
return -1;
}
int a = rotation.value();
return a;
}
catch (Exiv2::Error& e)
{
cout << e.what() << endl;
return -1;
}
}我只是写了"int = rotation.value();“,但我知道它不可能是这样的。
如果你能帮我,我会很感激的。
发布于 2016-11-16 15:41:42
在Exiv2 documentation中,方向标记已经是一个短值,所以您的"int = rotation.value();“想法是有效的。
编辑:来自API documentation of ExifDatum
int a = rotation.toLong();返回值表示您读取的是here。
如果有什么地方不对劲,请指教。我已经很多年没有用过Exiv2了。
https://stackoverflow.com/questions/40626240
复制相似问题