2014-03-04 3 views
0

ImageResizer에 WebAPI에서 제공하는 이미지의 크기를 조정하려고합니다. 나는 ImageResizer를 문서에 따라 설치했다. /resizer.debug.ashx는 아무런 문제가 없습니다. 정적 이미지의 크기를 조정하려고하면 정상적으로 작동합니다.ImageResizer가 WebAPI에서 제공하는 이미지의 크기를 조정하지 않습니다.

/api/files/image/image.jpg?width=100 
    /api/files/image/image.jpg?width=100&process=always 
    /api/files/image/image.jpg?width=100&format=jpg 

내 WebAPI 조치는 다음과 같습니다 : WebAPI와 ImageResizer을 사용하는 방법은

[HttpGet] 
    public HttpResponseMessage Image(string name) 
    { 
     var filePath = GetFilePath(); 

     var response = new HttpResponseMessage(HttpStatusCode.OK); 
     response.Content = new StreamContent(new FileStream(filePath, FileMode.Open, FileAccess.Read)); 
     response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("inline"); 
     response.Content.Headers.ContentDisposition.FileName = fileData.OriginalFileName; 
     response.Content.Headers.ContentLength = fileData.ContentLength; 
     response.Content.Headers.ContentType = new MediaTypeHeaderValue(fileData.MediaType); 

     return response; 
    } 

있습니까

나는 이러한 매개 변수를 사용하여 크기를 조정하려고?

답변

2

WebAPI, MVC 및 HTTPHandler에는 모두 끔찍한 파일 처리 성능이 있습니다. 응용 프로그램 프레임 워크는 설계 상 큰 파일 처리를 위해 조정되지 않습니다.

또한 ASP.NET 및 IIS 파이프 라인 제한으로 인해 ExecuteRequest 단계에서 HttpHandler/MVC/WebAPI에서 파일을 생성 할 때 이미지를 효율적으로 캐시하고 제공 할 수 없습니다.

자세한 내용은 ImageResizer Best Practices Guide을 참조하십시오.

원본 이미지를 제공해야하는 경우 IVirtualImageProvider를 구현하거나 제공된 플러그인 중 하나를 사용하여 원하는 데이터 저장소에 액세스 할 수 있습니다.

+0

감사합니다. WebAPI를 사용하여 파일 메타 데이터를 반환하고 ImageResizer 핸들러를 사용하여 이미지를 제공해야한다고 보입니다. 그리고 지금은 내 목적을 위해 VirtualFolder 플러그인이 필요한 것을 할 것입니다. – marisks

관련 문제