No debe devolver System.Drawing.Image
, a menos que también agregue un formateador que sepa cómo convertirlo en los bytes apropiados no se serialice a sí mismo como bytes de imágenes como era de esperar.
Una posible solución es devolver un HttpResponseMessage
con la imagen almacenada en su contenido (como se muestra a continuación). Recuerde que si quiere la URL que mostró en la pregunta, necesitaría una ruta que mapee los parámetros {imageName}, {width} y {height}.
public HttpResponseMessage Get(string imageName, int width, int height)
{
Image img = GetImage(imageName, width, height);
using(MemoryStream ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new ByteArrayContent(ms.ToArray());
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
return result;
}
}
Pero, de nuevo, si usted está haciendo esto en muchos lugares, tomar la ruta de formateador puede ser el camino "recomendado". Como casi todo en programación, la respuesta dependerá de su escenario.
Confirmar mi respuesta aquí: http://stackoverflow.com/a/20888749/64334 –