.net-4.5 - 如何将 IPicture 转换为图像 - .NET 4.5 TagLib Sharp

标签 .net-4.5 taglib-sharp

我想在 Windows 窗体图片框中显示歌曲的专辑插图(通过 taglib-sharp 库访问)。我遇到的问题是 taglib-library 返回类型为 TagLib.IPicture 的图像而图片框需要类型为 System.Drawing.Image 的对象.

我已经在互联网上搜索了很多小时,寻找一种从 IPicture 转换的方法。至 Image ,但无济于事。我拥有的最好的线索是:http://msdn.microsoft.com/en-us/library/system.windows.forms.axhost.getpicturefromipicture.aspx ,但我还没有看到如何实现这一点的成功例子。

任何有关如何在这两种类型之间转换的帮助将不胜感激。注:IPicture不类似于 IPictureDisp在这种情况下。

最佳答案

我以前做过相反的事情 - 将现有的 .jpg 转换为 IPicture 以嵌入到 .mp3 文件中。我只是尝试反转该操作,在调整和测试后,想出了这个:

TagLib.File tagFile = TagLib.File.Create(mp3FilePath);
MemoryStream ms = new MemoryStream(tagFile.Tag.Pictures[0].Data.Data);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms);

谢谢你的问题 - 我已经知道我自己将如何使用它!

更新:这是另一种方式(.jpg 到 IPicture,我以前做过):
tagFile.Tag.Pictures = new TagLib.IPicture[]
{
    new TagLib.Picture(new TagLib.ByteVector((byte[])new System.Drawing.ImageConverter().ConvertTo(System.Drawing.Image.FromFile(jpgFilePath), typeof(byte[]))))
};

关于.net-4.5 - 如何将 IPicture 转换为图像 - .NET 4.5 TagLib Sharp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18176757/

相关文章:

c# - 启用 native 代码调试时,AccessViolationException 消失

C# - TagLib 获取 ISO block 偏移值

c# - 编辑taglib-sharp(音频元数据)的源代码

c# - 如何从现有文件中删除 MP3 标签

c# - 如何在 C# 中读取 .wav 文件的比特率

c# - GetManifestResourceStream() 返回 null

c# - 使用 SendGrid SMTP 电子邮件提交时出现 Bad Request 错误

c# - 在 async/await 中调用 async 方法和 TaskScheduler

asp.net - New PageAsyncTask 的重载解析失败

powershell - 将 [System.Drawing.Bitmap] 转换为 [File.IFileAbstraction]