首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除带有标签库的ID3标记的所有图片

删除带有标签库的ID3标记的所有图片
EN

Stack Overflow用户
提问于 2014-01-24 22:51:38
回答 2查看 1.9K关注 0票数 2

我删除了带有taglib-sharp (版本2.1.0)的ID3标记的所有图片:

代码语言:javascript
复制
tagFile.Tag.Pictures = new TagLib.IPicture[0];
tagFile.Save();

如果我再次用taglib-sharp读取文件,就不会有更多的图片了。这是可以的,但文件大小保持不变。

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

有谁知道我如何用taglib-sharp来缩小文件大小吗?

提前谢谢。

Rene

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-14 15:22:48

我一直在看这个,我有一个解决办法,如果您保留对所有要保留的标记的引用,删除标记并添加您想要返回的标记,文件大小就会缩小。我知道这很可怕,但很管用。所以,如果你只想保留标题:

代码语言:javascript
复制
        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
EN

Stack Overflow用户

发布于 2015-04-01 21:58:53

因为SepehrM要求我发布我的代码作为答案:

代码语言:javascript
复制
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();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21343938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档