Я пишу библиотеку для интерфейса C# с языком принтера EPL2. Одна функция, которую я хотел бы попытаться реализовать, - это печать изображений, спецификация doc говоритПреобразование изображения в монохромный массив байтов
p1 = Ширина изображения Ширина изображения в байтах. Восемь (8) точек = один (1) байт данных.
p2 = Длина графической Длина графической в точках (или печатных линий)
данных = необработанные двоичные данные без графического форматирования файла. Данные должны быть в байтах. Умножьте ширину в байтах (p1) на количество строк печати (p2) для общего количества графических данных. Принтер автоматически вычисляет точный размер блока данных на основе этой формулы.
Я планирую, что исходное изображение является файлом размером 1 бит на пиксель, который уже масштабируется до размера. Я просто не знаю, как получить его из этого формата в байт [] для отправки на принтер. Я попробовал ImageConverter.ConvertTo(Object, Type)
, но это не так, но массив, который он выдает, не соответствует размеру, и документации очень не хватает на то, как форматируется вывод.
Мой текущий тестовый код.
Bitmap i = (Bitmap)Bitmap.FromFile("test.bmp");
ImageConverter ic = new ImageConverter();
byte[] b = (byte[])ic.ConvertTo(i, typeof(byte[]));
Любая помощь с благодарностью, даже если она находится в совершенно другом направлении.
Вы ищете метод ['LockBits'] (http://msdn.microsoft.com/en-us/library/5ey6h79d%28v=VS.90%29.aspx). – SLaks
Я использовал ваш метод, но есть проблема с проблемой, с которой я столкнулся. http://stackoverflow.com/questions/2595393/ –