No debe devolver un System.Drawing.Image
, a menos que también agregue un formateador que sepa cómo convertir eso en los bytes apropiados, no se serialice como los bytes de imagen como es 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 desea la URL que mostró en la pregunta, necesitará una ruta que asigne 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 nuevamente, si está haciendo esto en muchos lugares, ir por la ruta del formateador puede ser la forma "recomendada". Como casi todo en programación, la respuesta dependerá de tu escenario.