|
Бинаризация картинки средствами 1С | ☑ | ||
---|---|---|---|---|
0
DeoxyS
12.01.22
✎
16:46
|
Требуется перевести картинку в бинарный код в 1С и напечатать на принтере средствами ZPL. Застрял: не могу понять как бинаризировать картинку.
Может кто занимался уже этим? есть гайд от https://support.zebra.com/cpws/docs/zpl/zpl_manual.pdf ZPL требуется для печати: A = ASCII hexadecimal (follows the format for other download commands) ИЛИ B = binary (data sent after the c parameter is strictly binary) Из того что пока понял. Открываем поток, читаем попиксельно, понимаем цвет пикселя и пишем в новую картинку. Оказалось, что я вообще не до конца понимаю, что делаю. В общем мало ли кто уже делал что то подобное. Буду рад любым советам. |
|||
1
pechkin
12.01.22
✎
16:49
|
||||
2
DeoxyS
12.01.22
✎
16:51
|
(1) ее и изучаю как раз, но очень уж тяжело пока для понимая она. ) 1. Она печатает не так как заявлено. 2. Она очень долгая, картинку может жевать до нескольких минут. Тут как раз ищу альтернативные способы.
|
|||
3
Kigo_Kigo
12.01.22
✎
16:54
|
Так насколько я помню, там драйвер сам может это сделать, дать команду драйверу и путь к картинке он ее сам отпечатет
|
|||
4
pechkin
12.01.22
✎
16:57
|
как я понял бинари - это те же байты что и в асци, только вместо кодов, символы с кодами
|
|||
5
arsik
гуру
12.01.22
✎
16:59
|
в атоле реализовано так. Может поможет.
БинарныеДанные = ПолучитьДвоичныеДанныеИзСтроки(СокрЛП(ПараметрыПечатиШК.ШтрихКод));
|
|||
6
H A D G E H O G s
12.01.22
✎
16:59
|
(0) Замерь производительность, вдруг потери времени не на отправки zpl кода на принтер
|
|||
7
Garykom
гуру
12.01.22
✎
16:59
|
микросервисы уже были? https://github.com/SimonWaldherr/zplgfa
|
|||
8
arsik
гуру
12.01.22
✎
17:02
|
+ (5) Вру. Не в атоле, а в штрихе.
|
|||
9
DeoxyS
12.01.22
✎
17:06
|
(8) это с ККТ она так работает как я понял, не с принтером.
|
|||
10
DeoxyS
12.01.22
✎
17:09
|
(6) ПрочитатьВБуферДвоичныхДанных вот эта функция отжирает 90% времени
|
|||
11
pechkin
12.01.22
✎
17:10
|
(10) у тебя сколько мегабайт картинка?
|
|||
12
DeoxyS
12.01.22
✎
17:11
|
(11) 3Kb :)
|
|||
13
mistеr
12.01.22
✎
17:14
|
(0) Зачем непременно "средствами 1С"? Откуда такая мания вырезать гланды через ж...
Почему бы не использовать для этого проверенные утилиты, вроде ImageMagick. Можно в паре с какой-нибудь COM оберткой к нему. |
|||
14
H A D G E H O G s
12.01.22
✎
17:15
|
Кто то что то делает не так.
|
|||
15
pechkin
12.01.22
✎
17:15
|
(12) приведи код
|
|||
16
H A D G E H O G s
12.01.22
✎
17:15
|
(13) Это и есть гланды, всякие внешние приблуды.
|
|||
17
DeoxyS
12.01.22
✎
17:16
|
(13) наверно так и придется...
|
|||
18
DeoxyS
12.01.22
✎
17:16
|
(15) обработки с инфостарта?
|
|||
19
H A D G E H O G s
12.01.22
✎
17:20
|
(18) Скриншота Тормозящего кода с замером производительности
|
|||
20
DeoxyS
12.01.22
✎
17:24
|
(19) думаю это мало чем поможет. https://prnt.sc/26ctjwj
|
|||
21
H A D G E H O G s
12.01.22
✎
17:28
|
(20) Это че за дичь?
|
|||
22
Garykom
гуру
12.01.22
✎
17:28
|
(20) ыыы
короче фоновые используй и в кучу потоков своей дичью грузи |
|||
23
Базис
naïve
12.01.22
✎
17:29
|
Фотошоп из 1С получается довольно посредственный.
Тебе точно надо изменять картинку? Просто вставить картинку в макет, чтобы драйвер принтера сам её перевёл в монохром, ещё и предоставляя пользователю выбор dithering (не помню точный перевод, но разным картинкам нужен разный). |
|||
24
Garykom
гуру
12.01.22
✎
17:29
|
(23) ZPL а не вин-драйвер принтера
|
|||
25
Garykom
гуру
12.01.22
✎
17:29
|
(24)+ по сути там ASCII текстовый файл в порт принтера отправляется
|
|||
26
Garykom
гуру
12.01.22
✎
17:30
|
(25)+ вроде бы последние вариации ZPL уже умеют вставки Base64 но не уверен
|
|||
27
Базис
naïve
12.01.22
✎
17:32
|
(24) Я знаю этот язык, ЕАС на нём писал для скорости. Но цель (0) мне кажется непонятной.
|
|||
28
DeoxyS
12.01.22
✎
17:36
|
(27) В ZPL есть команда GFA, с помощью нее можно отправить картинку "текстом" в коде. Цель перевести картинку в текст так, чтобы этот текст поняла команда ZPL :)
|
|||
29
Garykom
гуру
12.01.22
✎
17:39
|
(28) ну дык сделай exe-шник на (7) и конверти картинки в код
|
|||
30
Garykom
гуру
12.01.22
✎
17:40
|
(29)+ заодно туда защиту своей нетленки зашьешь и потом себе зарплату повысишь
|
|||
31
Garykom
гуру
12.01.22
✎
17:41
|
(30)+ хотя в крупняке (рарус, бит и т.д.) принято ВК делать по любому поводу и лицензии туда вставлять ))
|
|||
32
H A D G E H O G s
12.01.22
✎
17:45
|
(28) Что мешает использовать
ПолучитьHexСтрокуИзДвоичныхДанных() ? |
|||
33
mistеr
12.01.22
✎
17:48
|
(28) Качнул я этот мануал ради интереса. Ты, оказывается, и термин "бинаризация" неверно использовал. Речь идет просто о кодировании, к обработке изображений никакого отношения не имеет.
Короче, нужный код 100% должен быть где-то в недрах БПО. |
|||
34
Garykom
гуру
12.01.22
✎
17:52
|
(33) не факт
понятно что монохромная картинка и просто hex |
|||
35
DeoxyS
12.01.22
✎
17:55
|
(32) не хочет кушать это ZPL http://labelary.com/viewer.html
|
|||
36
mistеr
12.01.22
✎
18:00
|
(34) Блин, а ведь верно. Вот примерчик: https://support.zebra.com/cpws/docs/zpl/GFcommand.pdf
Но все равно, уверен, что в БПО все есть. |
|||
37
mistеr
12.01.22
✎
18:27
|
Кстати, ImageMagick поддерживает формат PBM, в т.ч. в текстовом варианте, типа "1 0 0 1 0 0 1 1 0". Можно использовать как промежуточный.
А в бинарном варианте просто берешь готовые байты и пихаешь в зебру. |
|||
38
pechkin
12.01.22
✎
20:02
|
(20) а по 3 байта за раз хотя бы нельзя читать?
|
|||
39
arsik
гуру
13.01.22
✎
00:11
|
У меня например все получилось
Можно проверить тут http://labelary.com/viewer.html
|
|||
40
mistеr
13.01.22
✎
11:01
|
(39) А где у тебя ^GF?
|
|||
41
arsik
гуру
13.01.22
✎
11:29
|
(40) А для чего ^GF? Там мутная схема с GF.
Проще так: ~DY - в память загрузил ^FO50,250^IMR:TEST1.PNG^FS - вывел на форму Ну и удалить из памяти надо в конце инструкций. ^IDR:TEST1.PNG^FS |
|||
42
arsik
гуру
13.01.22
✎
11:37
|
Мне кажется через GF можно только графику в формате GRF передавать.
|
|||
43
DeoxyS
13.01.22
✎
11:56
|
(39) Благодарю, я чет закциклился на GFA, и дальше методы глянуть уже не догадался )
|
|||
44
DeoxyS
13.01.22
✎
12:00
|
(39) Это через получитьHEXстрокуИзДвоичныхДанных?
|
|||
45
arsik
гуру
13.01.22
✎
12:05
|
||||
46
DeoxyS
13.01.22
✎
12:44
|
(45) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |