|
v7: Картинка из BASE64 🠗 (Волшебник 28.03.2024 00:00) | ☑ | ||
---|---|---|---|---|
0
kupec
27.03.24
✎
11:47
|
Доброго дня. Получаю от WB через api ответ, в котором содержится строка в кодировке Base64. В ней закодирована картинка, а именно ШК заказа. Можно ли как то эту строку перегнать обратно в картинку? Пробую через БинарныеДанные, но что то не могу понять принцип действия, не получается ничего. Заранее спасибо
|
|||
1
trdm
27.03.24
✎
11:50
|
Подпишусь.
|
|||
2
kupec
27.03.24
✎
11:50
|
Написал вот такой код
БинарныеДанные = СоздатьОбъект("BinaryData"); FSO = CreateObject("Scripting.FileSystemObject"); text=FSO.opentextfile("C:\1.txt",1,0,0); Строчка = Text.ReadLine(); БинарныеДанные.ЗаписатьСтроку(Строчка,1); БинарныеДанные.СохранитьВФайл("C:\1.png"); В открываемом текстовом файле содержится строка, если я её просто копирую и вставляю в онлайн конвертер, то мне на выходе выдается правильная картинка. Может что то нужно добавить? Подскажите пожалуйста, знающие люди |
|||
3
timurhv
27.03.24
✎
12:15
|
Удалите в начале текст вида:
"data:image/png;base64," |
|||
4
timurhv
27.03.24
✎
12:18
|
Код из 8-ки по получению двоичных данных:
Base64Значение(СтрЗаменить(СтрокаКартинки.Значение, "data:image/png;base64,", "")) Base64Значение (Base64Value) Получает из строки закодированной по алгоритму base64 двоичные данные. |
|||
5
kupec
27.03.24
✎
12:24
|
(3) таких данных там нет
|
|||
6
timurhv
27.03.24
✎
12:38
|
(5) Тогда остается декодировать base64 в двоичные данные, по ссылке обсуждалось, возможно рабочий код (не проверял, с 7.7 не работаю)
https://helpf.pro/help/view/18047.html |
|||
7
kupec
27.03.24
✎
12:45
|
Его тоже пробовал, не взлетело
|
|||
8
vladmenleo
27.03.24
✎
13:18
|
(7) Вот моя рабочая функция на основе ссылки в (5) Точно работает
Функция глДекодироватьФайл(СтрокаИсточник) Экспорт ЦДО = СоздатьОбъект("CDO.Message"); ФСО = СоздатьОбъект("Scripting.FileSystemObject"); Файл = КаталогВременныхФайлов() + ФСО.GetTempName() + ".pdf"; Пустышка = КаталогВременныхФайлов() + ФСО.GetTempName(); ЗначениеВФайл(Пустышка, ""); Вложение = ЦДО.AddAttachment(Пустышка); Вложение.ContentTransferEncoding = "base64"; Состояние("Декодировка данных"); Стрим = Вложение.GetEncodedContentStream(); Текст = СоздатьОбъект("Текст"); Текст.ДобавитьСтроку(СтрокаИсточник); Текст.Записать(Файл);Текст=""; Стрим.LoadFromFile(Файл); Стрим.Flush(); Вложение.SaveToFile(Файл); ФС.УдалитьФайл(Пустышка); Возврат Файл; КонецФункции я сохраняю как пдф, ну а тебе надо будет png |
|||
9
kupec
27.03.24
✎
13:24
|
Благодарю
|
|||
10
kupec
27.03.24
✎
19:12
|
а разрешите попросить еще обратную процедуру, файл в "base64"
|
|||
11
kupec
27.03.24
✎
23:00
|
Не актуально, нашел в соседних ветках
|
|||
12
trdm
28.03.24
✎
10:29
|
(11) Ссылку хоть дай.
|
|||
13
kupec
28.03.24
✎
12:57
|
(12) Держи
как в 1с77 конвертировать файл в base64 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |