2014-01-24 104 views
2

我删除ID3标签的所有图片与标签库锐(2.1.0版本):删除ID3标签的所有图片与标签库锋利

tagFile.Tag.Pictures = new TagLib.IPicture[0]; 
tagFile.Save(); 

如果我的taglib锋利再次读取该文件没有更多的照片。这没问题,但文件大小保持不变。

如果我用像mp3tag这样的工具删除图片(http://www.mp3tag.de),文件大小会减小。

有没有人有一个想法,我可以通过taglib-sharp减小文件大小?

在此先感谢。

刘若英

回答

0

我一直在看这个,我有一个解决办法,如果你让一个引用到所有你想保留,删除标记,并添加你想要回来的那些标签,文件尺寸缩小。我意识到这是非常可怕的,但它的作品。所以,如果你只是想保持标题:

 string title; 
     using (var taglibFile = TagLib.File.Create(file)) 
     { 
      title = taglibFile.Tag.Title; 
      taglibFile.RemoveTags(TagTypes.AllTags); 
      taglibFile.Save(); 
     } 

     using (var tagLibFile = TagLib.File.Create(file)) 
     { 
      tagLibFile.Tag.Title = title; 
      tagLibFile.Save(); 
     } 
+0

非常感谢。 我现在用CopyTo保存完整的标签,删除所有标签,保存标签,之后我用CopyTo写回并保存一遍: –

+1

@ReneHilgers您可以分享您的代码作为答案吗? – SepehrM

0

因为SepehrM问我后我的代码作为一个答案:

TagLib.Tag tempTag = null; 
TagLib.File tagFile = TagLib.File.Create(file); 
tempTag = new TagLib.Id3v2.Tag(); 
tagFile.Tag.CopyTo(tempTag,true); 
tagFile.RemoveTags(TagLib.TagTypes.AllTags); 
tagFile.Save(); 
tagFile.Dispose(); 


TagLib.File tagFile2 = TagLib.File.Create(file); 
tempTag.CopyTo(tagFile2.Tag, true); 
tagFile2.Save(); 
tagFile2.Dispose();