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)的主要内容,如果未能解决你的问题,请参考以下文章