C#使用taglib处理mp3 ID标签-专辑封面艺术

9

我正在制作自己的MP3标签编辑器,目前一切正常。不过,我卡在了读取专辑封面标签的地方。

我想知道如何在C#.NET的图片框中显示封面,但是我看到的所有关于这个特定标签的内容都让我感到困惑。

我知道可以像这样从文件中获取标签:

txtAlbum.Text = currentFile.Tag.Album;

但我只需要从文件中提取图片并将其放入一个picturebox。然后,我想知道如何将图片(jpg、png)写入文件并覆盖现有的文件。
非常感谢您的帮助,并感谢您宝贵的时间。
2个回答

15

试一试

TagLib.File tagFile = TagLib.File.Create(path);
IPicture newArt = new Picture(tmpImg);
tagFile.Tag.Pictures = new IPicture[1] {newArt};
tagFile.Save();

编辑

var file = TagLib.File.Create(filename);
        if (file.Tag.Pictures.Length >= 1)
        {
            var bin = (byte[])(file.Tag.Pictures[0].Data.Data);
            PreviewPictureBox.Image = Image.FromStream(new MemoryStream(bin)).GetThumbnailImage(100, 100, null, IntPtr.Zero);
        }

1
很好,谢谢你。有没有想法如何读取专辑封面? - Purplebob
我不会使用缩略图,因为有时图像质量会丢失,但请使用您认为合适的方法。 - cramopy
对我没有起作用。我需要使用抽象来在Windows 10上使其工作吗(就像我在某些网站上看到的那样)? - user2225495

7
这是我针对该问题的快速简短解决方案:
var file = TagLib.File.Create(filename);
var bin = (byte[])(file.Tag.Pictures[0].Data.Data);
imageBox.Image = Image.FromStream(new MemoryStream(bin));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接