如果没有关键字,则无法添加图像关键字,Taglib-Sharp

Posted

技术标签:

【中文标题】如果没有关键字,则无法添加图像关键字,Taglib-Sharp【英文标题】:Can't add image keywords if there were no keywords to begin with, Taglib-Sharp 【发布时间】:2016-02-15 16:48:56 【问题描述】:

我正在尝试使用 Taglib-Sharp 将元数据关键字添加到图像文件中。我的问题是以下代码:

image.ImageTag.Keywords = (string[])newTags.ToArray(typeof(string));
image.Save();

如果文件开头没有关键字,则不执行任何操作。如果我在资源管理器中打开文件属性并首先手动添加标签,它就可以正常工作并将标签添加到文件中。

我尝试在此方法的顶部设置断点,我可以看到 image.ImageTag.Keywords 的长度为零,正如它最初应该的那样,并且 sn-p (string[])newTags.ToArray(typeof(string)) 确实成功返回了填充字符串数组,但在那一行之后,image.ImageTag.Keywords 变量的长度仍然为零。

我完全被困在这里,如果我首先手动添加至少一个标签,一切都会很好。仅当文件中没有标签开始时才会出现此问题。

【问题讨论】:

【参考方案1】:

好的,经过数小时的调试,我得出的结论是,这个问题是 TagLib 本身的一个错误。如果创建了一个新的图像文件并且该文件的 meta 关键字属性从未手动更改,那么 TagLib 似乎只是忽略设置 image.ImageTag.Keywords 数组并跳过它。为了让它更改文件中的关键字,我必须首先手动向文件添加一个标签,然后将其删除。这会初始化文件本身中的标记属性,因此允许由 TagLib 设置它。如果从未初始化此属性,TagLib 将完全忽略尝试设置 image.ImageTag.Keywords 变量。

那么任何人都可以添加这个并告诉我是否有可能解决这个问题?

【讨论】:

以上是关于如果没有关键字,则无法添加图像关键字,Taglib-Sharp的主要内容,如果未能解决你的问题,请参考以下文章

将关键字元数据添加到 iOS 中的图像

SIFT openCV 的关键点数?

java方法通过啥关键字返回结果,如果方法没有返回值,则使用啥关键字作为?

添加 springsecurity.taglib.xml 时无法运行项目

C#Multiline Textbox:如果包含X,则在行之后添加一个字符串

在 Qt Creator 中将 TagLib 库添加到 Linux Qt 项目?