如果没有关键字可以添加图片关键字,Taglib-Sharp

时间:2016-02-15 16:48:57

标签: c# image taglib taglib-sharp

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

image.ImageTag.Keywords = (string[])newTags.ToArray(typeof(string));
image.Save();
如果文件中没有关键字,则

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

我已经尝试在此方法的顶部设置断点,我可以看到image.ImageTag.Keywords的长度为零,因为它应该首先应用,并且代码段(string[])newTags.ToArray(typeof(string))成功返回填充的字符串数组,但在该行之后,image.ImageTag.Keywords变量的长度仍为零。

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

1 个答案:

答案 0 :(得分:0)

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

所以有人可以加入这个并告诉我是否有可能解决这个问题?