问题标签 [exiv2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
186 浏览

c++ - exiv2 中的“无法解析”IPTC 日期到 XMP 日期时间

我对 exiv2 进行了一些修改,试图在 EXIF、IPTC 和 XMP 之间扩展它的日期/时间转换功能。http://dev.exiv2.org/issues/864

IPTC 日期和 IPTC 时间存储在不同的字段中,所以首先我尝试解析 IPTC 日期,稍后在我的代码中我尝试解析时间。

我是编程的初级初学者,所以这看起来是一个非常基本的问题,但这里有。该代码被添加到 cnvIptcValue 函数内的 exiv2 文件 convert.cpp 中。

我从命令行得到的确切错误:

起初我认为日期转换代码失败:

但进一步的测试表明,失败的是时间转换代码:

所以时间代码试图解析日期字段。通过添加几行代码将其更改为时间字段:

我还扩展了错误消息代码以查看时间字段中的内容。现在的结果是:

它正确解析日期字段,但不正确解析时间。为什么是这样?是不是解析错了?

0 投票
2 回答
95 浏览

c++ - 解析 ACDSee 类别

如何解析一个类似 xml 的字符串并将其转换为一个单独的列表?

我正在尝试转换以下字符串:

到一个单独的列表,如:

exiv2 的 Robin Mills 提供了一个 perl 脚本: http ://dev.exiv2.org/boards/3/topics/1912?r=1923#message-1923

那还需要解析Assigned="1". 这如何在 C++ 中完成以在digikam中使用,内部dmetadata.cpp结构如下:

我没有足够的编程背景来解决这个问题,也没有在网上找到任何类似的代码示例。我还想将代码包含在 exiv2 本身中,以便其他应用程序可以受益。

工作代码将包含在 digikam 中:https ://bugs.kde.org/show_bug.cgi?id=345220

0 投票
1 回答
329 浏览

python - Pyexiv2 和 PIL 文件阻塞

我正在编写一个脚本来将元数据保存到 jpg 图像并为 Wordpress 调整它们的大小。它一直进展顺利,使用 jpegs 和 pngs,直到我尝试在使用 PIL.Image.thumbnail() 调整 jpg(但不是 png)大小后直接在图像上使用它

我试图将它全部压缩成一个易于阅读的课程,以帮助任何可以帮助回答问题的人。主要类是 MetaGator(元缓解器),它将属性“标题”和“描述”写入文件中相应的元数据字段。

我用来测试它的代码在main中,并给出以下输出:

如您所见,在 JPG 测试中,它在普通文件上运行良好,但在 PIL 调整图像大小后根本无法运行。.PNG 不会发生这种情况,它使用 PIL 保存元数据,这会让我认为问题出在 pyexiv2 上。

我应该尝试什么?任何的意见都将会有帮助。

谢谢你。

0 投票
1 回答
19561 浏览

android - ndk-build 输出“添加符号时出错。文件格式错误'

我想在我的 Android 项目中使用用 C++ 编写的 exiv2 库。为此,我尝试使用 Android NDK 交叉编译库。

对于交叉编译,我遵循以下步骤:

  1. 将 ndk 路径添加到变量 PATH

    /li>
  2. 安装用于交叉编译 C/C++ for Android 的标准工具链。

    /li>
  3. 设置一些环境变量,以便配置和构建过程使用正确的编译器。

    /li>
  4. 构建静态库和足够的头文件

    /li>

结果,我创建了“构建”类别文件:

我将创建的静态库libexiv2.ainclude文件夹复制到我的 Android 项目中appName/src/main/jni/prebuild

Android.mk好像:

在我的 Android 包装器中,我尝试使用该库。它看起来如下:

但是ndk-build输出它找不到它。

我相信交叉编译中的标志有问题。我尝试了几种选择,但仍然有问题。 我遵循了这些说明:https ://groups.google.com/forum/#!topic/android-ndk/mYh1LzMu_0U

0 投票
3 回答
1505 浏览

image-processing - 无论如何(命令行工具)来计算 .NEF(也 .CR2、.TIFF)的 MD5 哈希值,而不管任何元数据?

不管任何元数据,例如 EXIF、IPTC、XMP 等,是否有(命令行工具)来计算 .NEF(也是 .CR2、.TIFF)的 MD5 哈希?

一旦我们更新图像文件中的任何元数据,MD5 哈希值应该相同。

我搜索了一段时间,最接近的解决方案是:

但 'exiftool -all=' 仍然在输出文件中保留一组 EXIF 标记。如果我更新剩余的标签,可以更改 MD5 哈希。

0 投票
1 回答
91 浏览

c++ - QtLogger 出现错误 C2511

早上好,

我目前正在处理 Qt 项目(使用的软件:VS 2010),在我的 QLogger.cpp 中,我的函数 addDestination 出现 C2511 错误,但我不知道为什么,因为我的所有函数都已正确使用。我在发布模式下编码,因为它在调试模式下不起作用。

这里是完整的消息错误:

错误 1 ​​错误 C2511: 'bool QLogger::QLoggerManager::addDestination(const QString &,const QString &,QLogger::LogLevel)' : 在 'QLogger::QLoggerManager' C:\Users\gdeca_000\Desktop 中找不到重载的成员函数\qt-编码\QLogger\QLogger.cpp 104

这里是 .h 代码:

这里是 .cpp 代码:

感谢您的帮助和时间。

0 投票
1 回答
157 浏览

c++ - 如何将 const Exiv2::Value 转换为 int

我正在使用 Exiv2 来获取照片的元数据。我想使用这些元数据的一些价值。但我不知道如何将 exiv2 值转换为 int。这是我的电源线。

我只是写“int a = rotation.value();”但我知道不可能是这样的。

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

0 投票
0 回答
386 浏览

c++ - 在 Mac OSX 上的 C++ Netbeans 中添加外部库或 SDK

我正在寻找一种来自 JAVA 背景的 C++ 新的明确答案,您只需将 JAR 文件添加到您的项目中。我正在尝试构建一个检查元数据的项目,所以我正在使用 Exiv2

我想将此添加到我的项目中,我该怎么做?我在我的开发环境中使用 Netbeans 并且使用 Mac OS X 将不胜感激,这样我就可以摆脱链接并完全理解它,谢谢

自述文件

0 投票
0 回答
411 浏览

ios - 适用于 iOS 的 Exiv2:XMP 工具包支持未编译

我正在构建一个 iOS 应用程序,它可以拍照、修改图片并将 XMP 元数据嵌入到图片中。问题在于编写 XMP 部分。图片保存为 JPEG 后,我使用Exiv2重新打开图片,写入 XMP,然后重新保存 JPEG。这是我的示例代码:

断点

在我的 PC 上运行良好,使用 XCode 和 iOS 模拟器也运行良好。XMP 已正确写入 JPEG 文件。但是,当我在 iPhone 上测试时,它会抛出

警告:未编译 XMP 工具包支持。

并且 XMP 不存在。我怀疑 Exiv2 在我为 iOS 构建它时没有正确链接。这是我的做法:

  1. 下载并构建适用于所有拱门的Expat(i386 x86_64 armv7 armv7s arm64)。我使用此脚本进行构建,经过一些调整后它运行良好。我用 lipo 检查了生成的 libexpat.a 并且所有的拱门都在那里。请注意,如果启用了 XMP,Exiv2 需要 Expat。
  2. 使用此脚本并进行一些调整,为 iPhoneSimulator(i368 和 x86_64)构建 Exiv2 。在构建时,没有错误,正如我所说,一切正常。配置命令如下所示:./configure --host=x86_64-apple-darwin --prefix=$PREFIXDIR/iphonesim-build --disable-dependency-tracking --enable-static=yes --enable-shared=no --disable-dependency-tracking --enable-commercial --disable-nls --disable-lensdata --without-libiconv-prefix --without-zlib --with-expat=/Users/kevin/Downloads/expat-ios
  3. 但是,在为 iPhoneOS(armv7、armv7s 和 arm64)构建时出现错误:

libtool: link: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch armv7 -arch armv7s -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk -mios-version-min=10.2 -o ../bin/exiv2 exiv2.o actions.o utils.o -Wl,-bind_at_load -L/Users/kevin/Downloads/expat-ios/lib -L/Users/kevin/Downloads/exiv2-ios/src/exiv2-0.25/xmpsdk/src ./.libs/libexiv2.a -liconv -lexpat -ldl Undefined symbols for architecture armv7: "_WXMPIterator_DecrementRefCount_1", referenced from: TXMPIterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(TXMPIterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&) in libexiv2.a(xmp.o) TXMPIterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~TXMPIterator() in libexiv2.a(xmp.o) TXMPIterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~TXMPIterator() in libexiv2.a(xmp.o) TXMPIterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~TXMPIterator() in libexiv2.a(xmp.o) Exiv2::XmpParser::decode(Exiv2::XmpData&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libexiv2.a(xmp.o)

并在一长串错误之后:

"MD5Init(MD5_CTX*)", referenced from: Exiv2::Converter::computeExifDigest(bool) in libexiv2.a(convert.o) Exiv2::Converter::computeIptcDigest() in libexiv2.a(convert.o) "MD5Final(unsigned char*, MD5_CTX*)", referenced from: Exiv2::Converter::computeExifDigest(bool) in libexiv2.a(convert.o) Exiv2::Converter::computeIptcDigest() in libexiv2.a(convert.o) "MD5Update(MD5_CTX*, unsigned char const*, unsigned int)", referenced from: Exiv2::Converter::computeExifDigest(bool) in libexiv2.a(convert.o) Exiv2::Converter::computeIptcDigest() in libexiv2.a(convert.o) ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [exiv2] Error 1 make: *** [install] Error 2

因此,即使编译器构建并创建了 iPhoneOS 的库,Exiv2 也无法XmpParser::encode正确调用并崩溃。如果我删除该部分,它不会崩溃,但不会写入 XMP。

我的问题是:

  1. 如何为 iPhoneOS 架构正确构建 Exiv2?
  2. 是否有任何其他可能的原因导致在 iOS 中将 XMP 写入 JPEG 文件不起作用?
0 投票
1 回答
407 浏览

exiv2 - Ubuntu libexiv2.so.26 缺少错误信息

我正在使用 exiv2 库。我目前面临一个问题,我找不到解决办法。这是问题所在。我安装了 exiv2 库。当我尝试运行它时,会出现以下错误。

但是,当我打开 /usr/local/lib 文件夹时,它就存在在那里。再次,当我尝试使用 ldd 命令定位库时,该命令无法定位它!谁能帮我找出那里发生了什么?提前致谢!如果不是如何卸载整个库并重新安装它?