Моя проблема в том, что мне нужно нарисовать текст на монохромном растровом изображении. Получившееся растровое изображение должно быть напечатано на термальном POS-принтере, поэтому битмап должен быть 1bpp.Рисование текста на монохромном растровом изображении в C#
Я плохо разбираюсь в графике, поэтому я попытался найти несколько образцов. Вот что я пробовал:
Bitmap bmp = new Bitmap(300, 300, PixelFormat.Format1bppIndexed);
using (Graphics g = Graphics.FromImage(bmp))
{
Font font = new Font("Arial", 20, FontStyle.Bold, GraphicsUnit.Point);
g.Clear(Color.White);
g.DrawString(text, font, Brushes.Black, 0, 0);
}
bmp.Save(@"c:\x\x.bmp", ImageFormat.Bmp);
Сохранить в конце был просто проверить результат. С помощью этого кода я получаю следующее исключение: Объект Graphics не может быть создан из изображения с индексированным пиксельным форматом.
Есть ли способ рисовать текст в монохромном растровом виде памяти?
Просто для информации: мне это нужно, потому что мой глупый POS принтер рисует 0 точно так же, как O, поэтому они невозможно отличить ...
Вы могли бы привлечь к нормальной битовой карте, а затем преобразовать в индексированный формат: http://stackoverflow.com/questions/9010761/c-sharp-convert-bitmap-to-indexed -Цвет-формат – BartoszKP