Я использую Image Sharp в проекте ASP.Net Core и теперь мне нужно подготовить PNG-изображения для устройства, которое может обрабатывать только 2 цветных PNG-изображения с индексами.
Если я использую следующий код, тоизображения сохраняются как двухцветные изображения на поддонах, но результат поврежден, мне кажется, что упаковка пикселей не происходит.
private void ConvertToMonoPng(Stream stream, string fileName)
{
Image<Rgba32> image = Image.Load(fileName);
PngEncoder enc = new PngEncoder();
enc.CompressionLevel = 9;
enc.ColorType = PngColorType.Palette;
enc.BitDepth = PngBitDepth.Bit1;
image.Save(stream, enc);
image.Dispose();
}
Результаты:
ИсточникИзображение
Выходное изображение
Я знаю, что библиотека ImageSharp в настоящее время не поддерживает упакованные в суббайты пиксели в памяти, но поскольку в PNGEncoder действительно есть некоторая поддержка, я надеюсь, что сохранение монохромных PNG поддерживается, и япросто делаю что-то не так.