WebAPI를 사용하여 이미지를 처리하는 방법
문의사항
서비스에 이미지를 게시/취득하는 다른 방법은 무엇입니까?JSON에서 Base-64 텍스트를 사용하거나 이진으로 네이티브 상태를 유지할 수 있을 것 같습니다.이미지를 텍스트로 변환하면 패키지 크기가 크게 증가하는 것으로 알고 있습니다.
이미지를 보내는 경우(웹 양식, 기본 클라이언트, 다른 서비스) 이미지 컨트롤러/핸들러를 추가해야 합니까, 아니면 포맷터를 사용해야 합니까?이것은 심지어 질문입니까?
저는 많은 경쟁 사례를 조사하고 발견했지만, 제가 어느 방향으로 가야 할지 잘 모르겠습니다.
이에 대한 장단점을 설명하는 사이트/블로그 기사가 있습니까?
제가 몇 가지 조사를 해봤는데 여기서 제가 생각해 낸 구현을 보실 수 있습니다. http://jamessdixon.wordpress.com/2013/10/01/handling-images-in-webapi/
보존을 위해 - 제이미의 블로그가 말한 것의 개요는 다음과 같습니다.
컨트롤러 사용:
가져오기:
public HttpResponseMessage Get(int id)
{
var result = new HttpResponseMessage(HttpStatusCode.OK);
String filePath = HostingEnvironment.MapPath("~/Images/HT.jpg");
FileStream fileStream = new FileStream(filePath, FileMode.Open);
Image image = Image.FromStream(fileStream);
MemoryStream memoryStream = new MemoryStream();
image.Save(memoryStream, ImageFormat.Jpeg);
result.Content = new ByteArrayContent(memoryStream.ToArray());
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
return result;
}
삭제:
public void Delete(int id)
{
String filePath = HostingEnvironment.MapPath("~/Images/HT.jpg");
File.Delete(filePath);
}
게시물:
public HttpResponseMessage Post()
{
var result = new HttpResponseMessage(HttpStatusCode.OK);
if (Request.Content.IsMimeMultipartContent())
{
//For larger files, this might need to be added:
//Request.Content.LoadIntoBufferAsync().Wait();
Request.Content.ReadAsMultipartAsync<MultipartMemoryStreamProvider>(
new MultipartMemoryStreamProvider()).ContinueWith((task) =>
{
MultipartMemoryStreamProvider provider = task.Result;
foreach (HttpContent content in provider.Contents)
{
Stream stream = content.ReadAsStreamAsync().Result;
Image image = Image.FromStream(stream);
var testName = content.Headers.ContentDisposition.Name;
String filePath = HostingEnvironment.MapPath("~/Images/");
//Note that the ID is pushed to the request header,
//not the content header:
String[] headerValues = (String[])Request.Headers.GetValues("UniqueId");
String fileName = headerValues[0] + ".jpg";
String fullPath = Path.Combine(filePath, fileName);
image.Save(fullPath);
}
});
return result;
}
else
{
throw new HttpResponseException(Request.CreateResponse(
HttpStatusCode.NotAcceptable,
"This request is not properly formatted"));
}
}
언급URL : https://stackoverflow.com/questions/19005991/how-to-handle-images-using-webapi
'programing' 카테고리의 다른 글
에서 Oracle 쿼리가 느리거나 실패합니다.SQL Developer에서 제공하는 NET 앱은 빠름 (0) | 2023.08.07 |
---|---|
코드 매개 변수를 실행하기 전에 페이지가 로드될 때까지 기다릴 사용자 스크립트? (0) | 2023.08.07 |
MySQL에서 10진수로 캐스트 (0) | 2023.08.07 |
잘못된 키 해시를 가진 Android Facebook 통합 (0) | 2023.08.07 |
배경색과 배경색의 차이점은 무엇입니까? (0) | 2023.08.07 |