Anda tidak boleh mengembalikan a System.Drawing.Image, kecuali jika Anda juga menambahkan pemformat yang tahu cara mengubahnya menjadi byte yang sesuai tidak membuat serial sendiri sebagai byte gambar seperti yang Anda harapkan.
Salah satu solusi yang mungkin adalah mengembalikan HttpResponseMessagedengan gambar yang disimpan dalam isinya (seperti yang ditunjukkan di bawah). Ingatlah bahwa jika Anda menginginkan URL yang Anda tampilkan dalam pertanyaan, Anda memerlukan rute yang memetakan parameter {imageName}, {width} dan {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;
}
}
Tetapi sekali lagi, jika Anda melakukan ini di banyak tempat, menggunakan rute formatter mungkin merupakan cara yang "disarankan". Karena hampir semua hal dalam pemrograman, jawabannya akan tergantung pada skenario Anda.