Создать изображение из потока с правильным форматом пикселя - PullRequest
0 голосов
/ 06 февраля 2019

Я создал веб-сервис в .Net Core.Этот сервис возвращает изображение png с индексом пикселя в формате 8pp:

using (Bitmap bmp = new Bitmap(img.width, img.height, PixelFormat.Format8bppIndexed))
{
    using (MemoryStream ms = new MemoryStream())
    {
        bmp.Save(ms, imgFormat);
        return new FileContentResult(ms.ToArray(), $"image/png");
    }
}

Я хочу протестировать этот сервис, поэтому я создал тест C # с этим фрагментом кода:

Task<HttpResponseMessage> responseTask = client.PostAsync(url, content);
responseTask.Wait();
var response = responseTask.Result;

HttpContent ct = response.Content;
byte[] data = await ct.ReadAsByteArrayAsync();
using (MemoryStream m = new MemoryStream(data))
{                         
    Bitmap img = new Bitmap(m);
    img.Save(filePath, ImageFormat.Png);
}

НоРастровое изображение img - это Format32bppArgb.Как я могу получить свое изображение в оригинальном формате (Format8bppIndexed)?

1 Ответ

0 голосов
/ 07 февраля 2019

Просто сохраните сразу, что вы получили:

using (var fs = new FileStream(filePath, FileMode.Create))
    fs.Write(data, 0, data.Length);
...