2014-01-08 61 views
2

我想使用TagLib在mp3文件中使用mp3 albumart。我正在使用該代碼,它給出了System.Drawing.Bitmap。如何在網頁上顯示。我正在使用MVC。如何從控制器方法返回圖像?

var file12 = TagLib.File.Create(file); 

if (file12.Tag.Pictures.Length >= 1) 
{ 
    var bin = (byte[])(file12.Tag.Pictures[0].Data.Data); 
    if (bin.Length > 0) 
    { 
     Images = System.Drawing.Image.FromStream(new MemoryStream(bin)).GetThumbnailImage(200, 200, null, IntPtr.Zero); 
     album = file12.Tag.Album; 
    } 
} 

請幫我

回答

1

只是把這些代碼在一個控制器方法,圖像將異步加載(在這個例子中控制方法接受文件名作爲參數,它可能不是你的情況下):

public ActionResult GetImage(string file) 
{ 
    var file12 = TagLib.File.Create(file); 
    if (file12.Tag.Pictures.Length >= 1) 
    { 
     string fileName = Path.ChangeExtension(
      Path.GetFileName(file), ".jpg"); 

     return base.File(
      (byte[])(file12.Tag.Pictures[0].Data.Data), 
      "image/jpeg", fileName); 
    } 

    // You have to handle this case 
    return null; 
} 

Controller.File()方法會爲你做所有的骯髒工作。爲了清晰起見,我省略了重新縮放,只需複製&將代碼粘貼到那裏即可。請注意,您必須返回的東西時,沒有圖像不可用(?默認縮略圖),你甚至可以返回一個HTTP錯誤有:

return HttpNotFound(); 

你的HTML將例如這樣的:

<img 
    src='@Url.Action("GetImage", new { file = "filenamehere.mp3" })' 
    alt='thumbnail' /> 

請注意,在這裏我假設您的圖像是JPG格式,如果不是,您可能需要將其轉換爲已知格式以返回適當的MIME類型(從字節流中檢測MIME類型也是可能的,請在此處檢查this post )。

0

我有選擇另一個選項用於顯示Mp3文件的AlbumArt。

創建Windows窗體應用程序跟蹤MP3文件專輯封面。

var filename = TagLib.File.Create(file); 
         if (filename.Tag.Pictures.Length >= 1) 
         { 
          var bin = (byte[])(filename.Tag.Pictures[0].Data.Data); 
          if (bin.Length > 0) 
          { 
           Images = Image.FromStream(new MemoryStream(bin)).GetThumbnailImage(800, 800, null, IntPtr.Zero); 
           PreviewPictureBox.Image = Images; 
           PreviewPictureBox.Image.Save("C:/Users/v-manshr/Desktop/MyMusicPlayer/MyMusicPlayer/AlbumImage/"+filename.Tag.Album+".jpg"); 
           PreviewPictureBox.Visible = false; 
          } 
         } 

這裏PreviewPictureBox是一個WindwosFormComtrol。

現在我得到了一個mp3文件專輯藝術,保存在一個位置。現在在MVC控制器中我將所有文件複製到我的Visual Studio本地文件夾中。使用(File.Copy).now在Viewr中顯示。使用圖像Src標籤

相關問題