从具有正确像素格式的流创建图像
Create image from stream with correct pixel format
我在 .Net Core 中创建了一个网络服务。此服务 return 像素格式为 8pp 的图像 png 索引:
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)?
直接保存你得到的东西:
using (var fs = new FileStream(filePath, FileMode.Create))
fs.Write(data, 0, data.Length);
我在 .Net Core 中创建了一个网络服务。此服务 return 像素格式为 8pp 的图像 png 索引:
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)?
直接保存你得到的东西:
using (var fs = new FileStream(filePath, FileMode.Create))
fs.Write(data, 0, data.Length);