Мы можем преобразовать изображение в байтовый массив для отправки на принтер ESC / POS.
Я использую код здесь: https://stackoverflow.com/a/14099717/1853275
это работает как шарм.
простой вопрос: возможно ли преобразовать этот байтовый массив обратно в исходное изображение?
если да, скажите, пожалуйста, как ...
Большее изображение:
Я создал прослушиватель TCP / IP, который действует как принтер POS.
Он получает данные из приложения POS, а затем перенаправляет их на реальный принтер.
между прочим, я должен получить продукты на квитанции и распечатать что-то дополнительное на основе продуктов.
Итак, мне нужно преобразовать графические данные в изображение (затем OCR), чтобы прочитать продукты при получении.
вот одна полученная квитанция ESC / POS:
pastebin.com/vUDHjGuj
(мы можем преобразовать его в байтовый массив, а затем отправить на принтер. Он напечатает квитанцию.)
Я знаю структуру захваченных данных. мы можем удалить команды ESC / POS и разделить массив на 0x0A LF. Мне просто нужен способ преобразовать графические байтовые массивы в изображение и соединить их вместе, чтобы создать изображение чека.
графический режим, отправляемый на принтер: 24-битная удвоенная плотность (0x1B 0x2A 0x21)
помогите пожалуйста ...
большое спасибо
ниже - одна из частей, которые я пробовал, но она дает все черное.
Я отправляю один фрагмент (байт []), с шириной = 512 (из захваченных данных), высотой: 1 (или любой)
public static Bitmap FromByteArray(byte[] ByteArray, Size Size)
{
Bitmap bmp = new Bitmap(Size.Width, Size.Height, PixelFormat.Format24bppRgb);
BitmapData bmpdata = bmp.LockBits(new Rectangle(0, 0, Size.Width, Size.Height),ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);
IntPtr ptr = bmpdata.Scan0;
System.Runtime.InteropServices.Marshal.Copy(ByteArray, 0, ptr, ByteArray.Length);
bmp.UnlockBits(bmpdata);
return bmp;
}