如何将const Exiv2 :: Value转换为int

时间:2016-11-16 07:23:36

标签: c++ metadata exiv2

我正在使用Exiv2来拍摄照片的元数据。我想使用这些元数据的一些值。但我不知道如何将exiv2值转换为int。这是我的souse cord。

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 a = rotation.value();”但我知道它不可能是这样的。

如果你帮助我,我将非常感谢你。

1 个答案:

答案 0 :(得分:0)

Exiv2 documentation开始,orientation标签已经很短了,所以你的“int a = rotation.value();”想法是有效的。

编辑: 来自API documentation of ExifDatum

int a = rotation.toLong();

返回值意味着您阅读here

如果有任何问题,请评论。我多年没有使用Exiv2了。