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

mat*_*oss 5 taglib-sharp .net-4.5

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

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

关于如何在这两种类型之间进行转换的任何帮助都将非常感激.注意:在这种情况下IPicture不类似IPictureDisp.

Ben*_*red 12

之前我做了相反的事情 - 将现有的.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);
Run Code Online (Sandbox Code Playgroud)

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

更新:这是另一种方式(.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[]))))
};
Run Code Online (Sandbox Code Playgroud)