Я использую Exiv2, чтобы взять метаданные фотографии. Я хотел бы использовать некоторые значения этих метаданных. но я понятия не имею, как преобразовать значение exiv2 в int. вот мой шнурок
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 = вращение. Value ();» но я знаю, что это не может быть так.
Я буду очень признателен, если вы мне поможете.
От Exiv2 документация, тег ориентации уже короткий, поэтому ваше «int a = вращение.value ();» Идея верна.
Отредактировано:
От API документация ExifDatum
int a = rotation.toLong();
Возвращаемое значение означает, что вы прочитали Вот.
Пожалуйста, прокомментируйте, если что-то не так. Я не использую Exiv2 в течение многих лет.
Других решений пока нет …