You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中MP3艺人图片的读取、编辑方法及音频类库推荐

C# 读取与编辑MP3艺人图片(ID3封面)解决方案

推荐类库

直接用TagLib#,这是个成熟的C#音频标签处理类库,专门用来处理MP3、FLAC等格式的ID3标签(包括艺人图片这类附加资源),可以通过NuGet直接安装:

Install-Package TagLibSharp

读取MP3中的艺人图片

通过类库获取ID3标签里的图片资源,提取后保存为本地文件:

using TagLib;
using System.IO;

// 加载目标MP3文件
var mp3File = TagLib.File.Create("target.mp3");
// 判断是否包含艺人图片
if (mp3File.Tag.Pictures.Length > 0)
{
    var coverPicture = mp3File.Tag.Pictures[0];
    // 根据MIME类型匹配图片扩展名
    var extension = coverPicture.MimeType switch
    {
        "image/jpeg" => ".jpg",
        "image/png" => ".png",
        _ => ".bin" // 未知格式用通用后缀
    };
    // 将图片数据写入本地文件
    File.WriteAllBytes($"artist_cover{extension}", coverPicture.Data.Data);
}
// 释放文件资源
mp3File.Dispose();

编辑MP3中的艺人图片

替换或添加新的艺人图片到MP3文件的ID3标签中:

using TagLib;
using System.IO;

// 加载目标MP3文件
var mp3File = TagLib.File.Create("target.mp3");
// 读取本地准备好的艺人图片数据
var newCoverData = File.ReadAllBytes("new_artist_cover.jpg");
// 创建图片对象,指定MIME类型和描述
var newCover = new Picture(new ByteVector(newCoverData))
{
    MimeType = "image/jpeg",
    Description = "Artist Cover"
};
// 清空原有图片,添加新图片(若要保留多张可直接追加到集合)
mp3File.Tag.Pictures = new IPicture[] { newCover };
// 保存修改到MP3文件
mp3File.Save();
// 释放文件资源
mp3File.Dispose();

注意事项

  • 操作前确保MP3文件未被其他程序占用,否则会抛出文件访问异常
  • 优先使用JPG/PNG格式的图片,MIME类型要和图片格式对应,避免标签识别异常
  • 如果需要保留原有其他标签信息,仅修改Pictures集合即可,不要覆盖整个Tag对象

内容的提问来源于stack exchange,提问作者Danial

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:33:12