TagLib - 从 MP3 中提取专辑封面 (Powershell)

Posted

技术标签:

【中文标题】TagLib - 从 MP3 中提取专辑封面 (Powershell)【英文标题】:TagLib - Extract Album Art from MP3 (Powershell) 【发布时间】:2020-06-28 15:58:04 【问题描述】:

所以,我正在使用 TagLib 为我的所有 MP3 文件制作一个快速批处理编辑器,以便一次性更改它们的标签。我面临的问题是如何从文件中提取原始专辑封面?目前我只知道我可以使用以下代码更改专辑封面:

$media.tag.pictures = [taglib.picture]::createfrompath("pic.jpg")

但是如何从源文件中获取原始文件?提前致谢!

【问题讨论】:

我不会为此使用 PoSh。相反,请使用 MP3Tag 等专用实用程序。它内置了脚本语言,执行正则表达式,并具有简单的模式替换。另外,它可以很好地处理嵌入的图像。 [咧嘴] @Lee_Dailey,感谢您的建议。我知道并且以前使用过 MP3Tag。我只是想学习如何使用 TagLib.dll 自己编写代码,它也是处理 MP3 标签的专用库,但再次感谢您! 不客气!祝你好运... [咧嘴笑] powershell 允许您使用 c# 类和代码。这就是您使用 taglib 所做的事情。您可以在 powershell 中完成所有操作,但直接在 C# 中完成会容易得多。至于需要做什么,这里之前已经回答过了***.com/questions/10247216/… @DiamondDrake,我找到了解决方案!谢谢! 【参考方案1】:

我找到了解决方案,以防万一有人也想用 Powershell 实现这个目标!非常感谢 @DiamondDrake 分享了这个用 C# 编写的 link,它教会了我需要什么。

所以应该是这样的:

[Reflection.Assembly]::LoadFrom("taglib-sharp.dll")  #Load your taglib-sharp.dll
$media = [TagLib.File]::Create("song.mp3")           #Make a variable from your song file
$albumart = $media.tag.pictures[0].Data.Data         #Where 0 is the first album art
$label.BackgroundImage = $albumart                   #I used it as a background for a label
$label.BackgroundImageLayout = 'Stretch'             #And stretched it to be seen clearly

【讨论】:

以上是关于TagLib - 从 MP3 中提取专辑封面 (Powershell)的主要内容,如果未能解决你的问题,请参考以下文章

C# TagLib 为 Mp3 设置专辑封面

如何从 MP3 ID3 标签中提取专辑封面?

从 mp3 文件中获取专辑封面?

是否可以从 Android 中的远程 mp3 文件中检索专辑封面?

taglib : 如何编辑专辑艺术家?

在 mp3 元数据中使用 python 添加专辑封面