powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перевод картинки из байтового массива в Bitmap
18 сообщений из 18, страница 1 из 1
Перевод картинки из байтового массива в Bitmap
    #38789706
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
        public static Bitmap ConvertByteToBitMap(byte[] pixelValues, Int32 Width, Int32 Heigh, System.Drawing.Imaging.PixelFormat format)
        {
            IntPtr ptr = Marshal.AllocHGlobal(pixelValues.Length);
            Marshal.Copy(pixelValues, 0, ptr, pixelValues.Length);
            Bitmap img = new Bitmap(Width, Heigh, 100, format, ptr);
            return img;
            
        }



Почему то получается картинка со смещением строк. На ней изображен штрихкод.
Каждая строчка на битмапе смещена на определенное расстояние.
От чего такой глюк?
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38789719
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в байтовом массиве то у вас что?
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38789722
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelavikА в байтовом массиве то у вас что?

однобитный битовый растр, полученный из драйвера принтера
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38789723
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В коде Вашем не разбирался, но....попробуйте взять картинку, "конвертнуть" ее в "байтовый массив", а потом обратно.
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38789724
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltBelavikА в байтовом массиве то у вас что?

однобитный битовый растр, полученный из драйвера принтера
Что он в драйвере делает? ))
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38789726
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очевидно, неверно указана ширина при создании картинки.
Ради эксперимента можно корректировать Width, пока не получится нормальная картинка, потом думать откуда взялась разница

(зы: может при передаче параметров в функцию перепутали местами высоту и ширину?)
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38789729
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltоднобитный битовый растр, полученный из драйвера принтераА, так кто тогда сказал, что это вообще картинка? Это могут быть PCL-инструкции, например
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38789733
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Изначально там ZPL-инструкции для принтеров Zebra

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2~SD25^JUS^LRN^CI0^XZ
^XA
^MMF
^PW799
^LL0320
^LS0
^FO0,0^GFA,32000,32000,00100,:Z64:
eJztzbENg0AQRNFBBISUQCmUBqVRCiUQOkCsj9wBsuTA0vvp3txLJEn6rvGY9kxb5lqXqqu70le9htdYR9JOybIuSSXd2Z9Du7RJu1Rt85o2SXf1dWaoezLVnnlrk7ZoXzEYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwG4z+Nh93G07cMBoPBYDAYDAaDwWAwGAwGg8FgMBifDEmS9Lve2HtgKQ==:9288
^FT3,293^A@N,52,58,TT0003M_^FH\^CI17^F8^FD1^FS^CI0
^FT767,293^A@N,52,58,TT0003M_^FH\^CI17^F8^FD>^FS^CI0
^FT128,293^A@N,52,58,TT0003M_^FH\^CI17^F8^FD234567^FS^CI0
^FT475,293^A@N,52,58,TT0003M_^FH\^CI17^F8^FD890128^FS^CI0
^PQ1,0,1,Y^XZ



Картинка штрихкода тут после
Код: c#
1.
:Z64:

и до
Код: c#
1.
:9288



Перекодирую ее из Base64, потом разжимаю по-алгоритму Lz77, получаю байтовый массив который передаю в ConvertByteToBitMap
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38789789
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте варианты
Код: c#
1.
2.
3.
4.
Bitmap img = new Bitmap(Width+224, Heigh, 100, format, ptr);
Bitmap img = new Bitmap(Width-224, Heigh, 100, format, ptr);
Bitmap img = new Bitmap(Width+336, Heigh, 100, format, ptr);
Bitmap img = new Bitmap(Width-336, Heigh, 100, format, ptr);
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38789884
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

картинка меняется по-ширине, изображение то же самое
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38790105
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может автор просто неправильная ширина картинки? вот всё и поехало :)
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38790116
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stride почему - константой задано?
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38790230
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt, странный подход. Чем не устроил пряморукий способ создания битмапа? http://msdn.microsoft.com/en-us/library/z7ha67kw(v=vs.110).aspx
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38790259
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

картинко от зебры - не совсем png


Eolt,
картинка 800 на 320 пикселей?
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38790296
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилstride почему - константой задано?

Да там непринципиально, можно и вот так задать

Код: c#
1.
2.
3.
4.
if (format == PixelFormat.Format24bppRgb) Stride = 2400;
if (format == PixelFormat.Format1bppIndexed) Stride = 100;

Bitmap img = new Bitmap(Width, Heigh, Stride, format, ptr);
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38790299
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилкартинка 800 на 320 пикселей?

да, 100 на 40 мм, в 1 мм = 8 пикселей
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38790307
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

почему картинка в стартовом посте 560 на 160, а в зебровом коде таких параметров не вижу
...
Рейтинг: 0 / 0
Перевод картинки из байтового массива в Bitmap
    #38790350
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

видимо перепутал картинки
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перевод картинки из байтового массива в Bitmap
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]