Как его преобразовать в JSON ?
json это текстовый формат, что Вы ему положите вообще не принципиально
отправляйте сам файл в виде имя файла и сами бинарные данные
{ "FileName": "picture01.png" , "binary": ["137","80","78","13".....] }
ну максимум контрольную сумму или хеш в конце добавьте, чтобы проверить целостность
json это текстовый формат, что Вы ему положите вообще не принципиально
отправляйте сам файл в виде имя файла и сами бинарные данные
ну максимум контрольную сумму или хеш в конце добавьте, чтобы проверить целостность
Так-то, обычно, в base64 бинарник перегоняют и шлют:
{"pic":"<base64>"}
Так-то, обычно, в base64 бинарник перегоняют и шлют:
{"pic":"<base64>"}
никогда не занимался веб
ну значит и выяснили, по ссылке ТС Ваш комментарий как конвертировать в base64 средствами MQL виден
upd: гуглом convert png to json выбрал первый попавшийся онлайн-конвертер, там можно формат подсмотреть
{"@attributes":{"width":"200","height":"200"},"image":{"@attributes":{"id":"image0","width":"200","height":"200","x":"0","y":"0","xlink:href":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAY
Так весь вопрос как получить эти бинарные данные из картинки с помощью MQL4
Так весь вопрос как получить эти бинарные данные из картинки с помощью MQL4
бинарные данные - это картинка, это уже есть, а вам нужен текст ASCII.
бинарные данные - это картинка, это уже есть, а вам нужен текст ASCII.
Хорошо. Получается вот так:
uchar x[]; int fh = FileOpen(_Symbol+Period()+".gif",FILE_BIN|FILE_READ); FileReadArray(fh,x,0,WHOLE_ARRAY); FileClose(fh); Print (ArraySize(x));//13600 string sx =""; //Этот код выдает то же самое что и следующя строка //int i = 0; //while (true) //{ // if (i>=ArraySize(x)) // break; // sx+=CharToString(x[i]); // i++; //} sx = CharArrayToString(x,0,ArraySize(x),CP_ACP); Print(sx);R0lGODlhWAKQAfcA string y = ""; y = EncodeBase64(sx); Print (StringLen(y)," ", y);// 16 R0lGODlhWAKQAfcA
Почему строка получается всего 16 символов ?
Хорошо. Получается вот так:
Почему строка получается всего 16 символов ?
А потому, что это строка, а строка заканчивается '/0' и пофиг run-time-у, что дальше в массиве 100500 байт))) Я же говорю - курите доки)))
а можно как то на примере или подскажите как исправить ?
а можно как то на примере или подскажите как исправить ?
А в чем проблема массив байт из картинки в кодировку BASE64 перевести?
void OnStart(){ uchar key[]; uchar result[]; //input uchar data[] = {11, 12, 00, 12, 13}; ArrayPrint(data); //11, 12, 00, 12, 13 //encoded CryptEncode(CRYPT_BASE64, data, key, result); printf("%s", CharArrayToString(result)); //CwwADA0= - ПОЗДРАВЛЯЕМ, ЭТО ВАША ИСКОМАЯ СТРОКА В КОДИРОВКЕ BASE64 //decoded CryptDecode(CRYPT_BASE64, result, key, result); ArrayPrint(result); //11, 12, 00, 12, 13 }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть скриншот в PNG
Как его преобразовать в JSON ?
Есть подозрение что с помощью библы https://www.mql5.com/ru/code/8098
Или как то по другому ?