2014-01-08 6 views
2

TagLib을 사용하여 mp3 앨범에서 mp3 앨범을 가져 가고 싶습니다. 나는 그 코드를 사용하고 있는데, 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() 메서드는 모든 더러운 일을 처리합니다. 이 예제에서 명확성을 위해 리 스케일링을 생략했습니다. 필요하다면 & 코드를 붙여 넣으십시오. 이 같은 예를 들어있을 것입니다

return HttpNotFound(); 

귀하의 HTML : 이미지가 (? 기본 썸네일)를 사용할 수 없습니다 없을 때 당신이 뭔가를 반환해야 유의하시기 바랍니다, 당신도 함께 HTTP 오류를 반환 할 수 있습니다

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

여러분의 이미지가 JPG 형식이라고 가정합니다. 올바른 MIME 형식을 반환하기 위해 알려진 형식으로 변환해야 할 필요가없는 경우 (바이트 스트림에서 MIME 형식을 검색하는 것도 가능합니다. 여기에서 this post을 확인하십시오.).

0

Mp3 파일의 AlbumArt를 표시하려면 다른 옵션을 선택하십시오.

Tracking mp3 file 앨범 아트 용 Windows Form 응용 프로그램을 만듭니다.

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입니다.

이제 MVC 컨트롤러에서 모든 파일을 Visual Studio 로컬 폴더로 복사합니다. File.Copy를 사용하여 Viewr.using 이미지로 표시합니다. Src 태그

관련 문제