Bunu System.Drawing.Image
uygun baytlara nasıl dönüştüreceğini bilen bir biçimlendirici eklemediğiniz sürece, kendisini beklediğiniz görüntü baytları olarak serileştirmez.
Olası bir çözüm, HttpResponseMessage
içeriğinde (aşağıda gösterildiği gibi) saklanan görüntü ile bir döndürmektir . Soruda gösterdiğiniz URL'yi istiyorsanız, {imageName}, {width} ve {height} parametrelerini eşleyen bir rotaya ihtiyacınız olacağını unutmayın.
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;
}
}
Yine de, bunu birçok yerde yapıyorsanız, biçimlendirici rotasına gitmek "önerilen" yol olabilir. Programlamadaki neredeyse her şey gibi, cevap senaryonuza bağlı olacaktır.