Sie sollten System.Drawing.Image
nicht zurückgeben, es sei denn, Sie fügen auch einen Formatierer hinzu, der weiß, wie er das in die entsprechenden Bytes konvertiert, serialisiert sich nicht wie die Bildbytes wie erwartet.
Eine mögliche Lösung ist die Rückgabe eines HttpResponseMessage
mit dem Bild in seinem Inhalt gespeichert (wie unten gezeigt). Denken Sie daran, dass Sie eine Route benötigen, die die Parameter {imageName}, {width} und {height} abbildet, wenn Sie die in der Frage angezeigte URL verwenden möchten.
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;
}
}
Aber noch einmal, wenn Sie an vielen Orten tun dies sind, geht die Formatierungs Route kann die „empfohlenen“ Weg. Wie bei fast allem Programmieren hängt die Antwort von Ihrem Szenario ab.
Überprüfen Sie meine Antwort heraus hier: http://stackoverflow.com/a/20888749/64334 –