|
v7: Как преобразовать изображение в строку символов
|
Я
|
|
gugolovski 21.12.20 - 10:29 | Требуется прогрузить логотип на весы.
В документации к весам говориться, что картинка/логотип должна быть прогруженна в виде строки байтов в 16-й системе.
Дословно:
**********************************************
SendLogoImage
Описание:
Метод реализует транзакцию передачи в весы матрицы точек для формирования изображения программируемого значка для товара.
Данные представляют собой строку байтов в 16-ричной системе записи - всего 512 байтов - 1024 символа
Пример использования:
1С Предприятие:
КодОшибки = Весы.ПередатьТоварнЗнак("1F23…BD11");
**********************************************
А как превратить изображение в строку символов. Может есть сервис какой? |
trdm 1 - 21.12.20 - 10:42 |
'nj&
|
trdm 2 - 21.12.20 - 10:42 | Это?
|
trad 3 - 21.12.20 - 11:26 | |
SiAl-chel 4 - 21.12.20 - 11:28 | |
trdm 5 - 21.12.20 - 11:56 | ( 3) ну да.
А бинарик чем читать? WBS стримом? |
trad 6 - 21.12.20 - 12:01 | ( 5) Чем читать бинарник - другой же вопрос (хоть стримом, хоть 1с++Binarydata)
Но base64 - точно мимо. |
trdm 7 - 21.12.20 - 12:04 | Любопытно, а если конвертнуть картинку в x16 а потом пожать зипом, она меньше станет, чем её просто пожать зипом.
|
d4rkmesa 8 - 21.12.20 - 12:25 | |
gugolovski 9 - 22.12.20 - 02:27 | А из двоичной в 16-чную перевести не сложно.
вопрос немного иной:
как кодировать рисунок в двоичную систему исчисления (например). как перевести картинку в символьную строку.
|
Garykom 10 - 22.12.20 - 08:04 | вероятно монохромный рисунок где каждый бит 1 означает точку
|
trdm 11 - 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 | вот еще нагуглил
|
Bigbro 14 - 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 изображение в перевернутом виде просто. Но можно в редакторе перевернуть, если надо. Автор смылся. Формат неизвестен. |
Bigbro 16 - 22.12.20 - 11:05 | ( 15) я не уверен что ванильный бмп формат еще хоть кто-то использует, все же продвинутые версии тоже со сжатием идут, считай тот же джепег в другой руке. |
Кирпич 17 - 22.12.20 - 11:14 | ( 16) Да какое сжатие. Там же написано 512 байт. Тупо пиксельный растр. Просто непонятно какой размер изображение (может 64x64 может 32x128) и как пиксели идут (строки столбцы). |
Bigbro 18 - 22.12.20 - 11:17 | куда передавать примерно понятно что с растром.
я имел в виду что у автора готовый логотип видимо есть который он хочет загрузить (в неизвестном формате).
а желания набрать это лого ручками или рисовать по пикселям - нет.
|
Garykom 19 - 22.12.20 - 12:12 | ( 17) в случае HEX кодирования, вероятнее всего или по 8 бит или по 16
но 8 не кратно поэтому думаю по 16 бит 4х4 точек
"1F23…BD11"
Т.е. одно знакоместо из двух байт "1F" - кодирует монохромную картинку 4х4 пикселя
Хотя можно и покрупней взять например 8х8=64 |
Garykom 20 - 22.12.20 - 12:15 | ( 19)+ Но согласен что можно не квадратиками а тупо линейно, что для последовательной печати проще
Но тогда надо знать ширину картинки
Хотя если 512 байт всего и картинка квадратная то это 64х64 пикселей |
Bigbro 21 - 22.12.20 - 12:19 | ( 20) с учетом того что на той стороне весы, с простейшей логикой, никто там не будет выстраивать квадратиками - 99% что принимают строку и как принимают так и льют на экран попиксельно в матрицу строка за строкой слева направо. |