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

本文关键字:关键字 图像 Taglib-Sharp 添加 如果没有 | 更新日期: 2023-09-27 18:34:37

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

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

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

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

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

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

好的

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

那么任何人都可以补充一下并告诉我是否有可能解决这个问题吗?