我正在尝试使用Taglib-Sharp将元数据关键字添加到图像文件。我的问题是以下代码:
image.ImageTag.Keywords = (string[])newTags.ToArray(typeof(string));
image.Save();如果文件中没有要开始的关键字,则不执行任何操作。如果我在资源管理器中打开文件属性并首先手动添加标签,它就可以正常工作,并将标签添加到文件中。
我尝试在此方法的顶部设置断点,我可以看到image.ImageTag.Keywords的长度为零,正如它一开始应该做的那样,并且代码片段(string[])newTags.ToArray(typeof(string))确实成功地返回了一个填充的字符串数组,但是在这一行之后,image.ImageTag.Keywords变量的长度仍然为零。
我完全被困在这里了,如果我先手动添加至少一个标签,那么一切都很好。只有当文件中没有标签可供开始时,才会出现问题。
发布于 2016-02-16 09:09:44
好的,经过几个小时的调试,我得出的结论是这个问题是TagLib本身的一个错误。如果创建了一个新的图像文件,并且该文件的meta关键字属性从未手动更改过,那么TagLib似乎就会忽略image.ImageTag.Keywords数组的设置,直接跳过它。为了让它更改文件中的关键字,我必须首先手动向文件添加一个标记,然后删除它。这将初始化文件本身中的tag属性,因此允许由TagLib设置该属性。如果此属性从未初始化,则TagLib将完全忽略尝试设置image.ImageTag.Keywords变量。
那么,有没有人可以补充一下,告诉我是否有可能解决这个问题?
https://stackoverflow.com/questions/35414734
复制相似问题