Имя: Пароль:
1C
1C 7.7
v7: Как преобразовать изображение в строку символов
,
0 gugolovski
 
21.12.20
10:29
Требуется прогрузить логотип на весы.
В документации к весам говориться, что картинка/логотип должна быть прогруженна в виде строки байтов в 16-й системе.
Дословно:
**********************************************
SendLogoImage
Описание:
Метод реализует транзакцию передачи в весы матрицы точек для формирования изображения программируемого значка для товара.
Данные представляют собой строку байтов в 16-ричной системе записи - всего 512 байтов - 1024 символа

Пример использования:
1С Предприятие:
    КодОшибки = Весы.ПередатьТоварнЗнак("1F23…BD11");

**********************************************

А как превратить изображение в строку символов. Может есть сервис какой?
1 trdm
 
21.12.20
10:42
2 trdm
 
21.12.20
10:42
Это?
3 trad
 
21.12.20
11:26
(1) HEX же нужен
4 SiAl-chel
 
21.12.20
11:28
5 trdm
 
21.12.20
11:56
(3) ну да.
А бинарик чем читать? WBS стримом?
6 trad
 
21.12.20
12:01
(5) Чем читать бинарник - другой же вопрос (хоть стримом, хоть 1с++Binarydata)
Но base64 - точно мимо.
7 trdm
 
21.12.20
12:04
Любопытно, а если конвертнуть картинку в x16 а потом пожать зипом, она меньше станет, чем её просто пожать зипом.
8 d4rkmesa
 
21.12.20
12:25
9 gugolovski
 
22.12.20
02:27
А из двоичной в 16-чную перевести не сложно.
вопрос немного иной:
как кодировать рисунок в двоичную систему исчисления (например). как перевести картинку в символьную строку.
10 Garykom
 
гуру
22.12.20
08:04
вероятно монохромный рисунок где каждый бит 1 означает точку
11 trdm
 
22.12.20
09:22
(6) Я в том смысле что понятно что не base64.
12 Кирпич
 
22.12.20
09:53
По формату картинки не ясно. Если как черно белое bmp, то можно тупо создать черно белую картинку 64 на 64 и сохранить в файл. Открыть в HEX редакторе и скопировать последние 512 байт. Убрать пробелы, если есть, подшаманить и скопипастить в 1с.
13 Кирпич
 
22.12.20
10:27
14 Bigbro
 
22.12.20
10:37
16*16 = 256, у нас 512 байт если картинка в градациях серого то это 32*32
если просто чб то 64*64
в (13) похоже на то что надо. но это не картинку а двоичный файл перегоняет.
конвертор из какого-нибудь bmp/jpg в этот формат графики вряд ли найдешь.
надо будет перевести лого в бинарник вручную.
15 Кирпич
 
22.12.20
10:43
Ну вон в (12) как из bmp выдернуть. В bmp изображение в перевернутом виде просто. Но можно в редакторе перевернуть, если надо. Автор смылся. Формат неизвестен.
16 Bigbro
 
22.12.20
11:05
(15) я не уверен что ванильный бмп формат еще хоть кто-то использует, все же продвинутые версии тоже со сжатием идут, считай тот же джепег в другой руке.
17 Кирпич
 
22.12.20
11:14
(16) Да какое сжатие. Там же написано 512 байт. Тупо пиксельный растр. Просто непонятно какой размер изображение (может 64x64 может 32x128) и как пиксели идут (строки столбцы).
18 Bigbro
 
22.12.20
11:17
куда передавать примерно понятно что с растром.
я имел в виду что у автора готовый логотип видимо есть который он хочет загрузить (в неизвестном формате).
а желания набрать это лого ручками или рисовать по пикселям - нет.
19 Garykom
 
гуру
22.12.20
12:12
(17) в случае HEX кодирования, вероятнее всего или по 8 бит или по 16
но 8 не кратно поэтому думаю по 16 бит 4х4 точек

"1F23…BD11"
Т.е. одно знакоместо из двух байт "1F" - кодирует монохромную картинку 4х4 пикселя

Хотя можно и покрупней взять например 8х8=64
20 Garykom
 
гуру
22.12.20
12:15
(19)+ Но согласен что можно не квадратиками а тупо линейно, что для последовательной печати проще
Но тогда надо знать ширину картинки

Хотя если 512 байт всего и картинка квадратная то это 64х64 пикселей
21 Bigbro
 
22.12.20
12:19
(20) с учетом того что на той стороне весы, с простейшей логикой, никто там не будет выстраивать квадратиками - 99% что принимают строку и как принимают так и льют на экран попиксельно в матрицу строка за строкой слева направо.