2013-06-04 2 views
0

이 질문이 너무 어리 석거나 전에 묻는다면 나를 용서해주십시오. 내 웹 응용 프로그램에서 이미지를 표시해야하며 이미지는 db로 바이트로 저장되며 바이트에서 이미지를 생성하지만 문제는 웹 응용 프로그램에서 이미지를 표시 할 때 이미지 프레임 크기가 초과되었음을 의미합니다. 100x100이지만 이미지는 실제 해상도로 제공됩니다. 당신이 어떤에 이미지를 다시 그릴 수는 바이트 [] 형식으로 이미지가 있으면 내 현재 코드가Asp.net MVC4에서 이미지 오버플로

컨트롤러 아래

[HttpPost] 
     public ActionResult ByteToImage() 
     { 
      ImageDL getImage = new ImageDL(); 
      byte[] image = getImage.CreateImage(); 
      return File(image,"Image/jpeg"); 
     } 

면도기

<img alt="" src="@Url.Action("ByteToImage", "User")" height="100" width="100" /> 

답변

0

주어집니다이 문제를 해결하는 방법 원하는 너비 너비 :

public FileContentResult GetImage(byte[] imgData, int WIDTH, int HEIGHT) 
{ 
    MemoryStream ms = new MemoryStream(imgData); 

    using (var srcImage = Image.FromStream(ms)) 
    using (var newImage = new Bitmap(WIDTH, HEIGHT)) 
    using (var graphics = Graphics.FromImage(newImage)) 
    using (var stream = new MemoryStream()) 
    { 
     graphics.DrawImage(srcImage, new Rectangle(0, 0, WIDTH, HEIGHT)); 
     newImage.Save(stream, ImageFormat.Jpeg);//Set your desired image format 
     return File(stream.ToArray(), "image/jpeg"); 
    } 
} 
0

다음 이미지 태그를 높이로 시도해보십시오.너비가 독립적으로 선언하는 것이 아니라 스타일로 언급되어 모든 브라우저에서 콘텐츠 자르기를 제공합니다.

<img style="width:220px;height:115px;" alt="" src="@Url.Action("ByteToImage", "User")"/> 
관련 문제