Мне нужна помощь в преобразовании файла .PNG из буфера на C++ в шестнадцатеричный RGB.C++

Программы на C++. Форум разработчиков
Anonymous
Мне нужна помощь в преобразовании файла .PNG из буфера на C++ в шестнадцатеричный RGB.

Сообщение Anonymous »

Я читаю файл PNG с веб-сайта:

Код: Выделить всё

    String zoom = "5";   // Test Values
String xmap = "30";  // Need to be adjusted
String ymap = "30";
String serverPathMap = "http://tile.openweathermap.org/map/precipitation_new/" +
zoom + "/" + xmap + "/" + ymap + ".png?" + "APPID=" + openWeatherMapApiKey;
Я использую это, чтобы поместить PNG-файл в String JSONBuffer.

Код: Выделить всё

    jsonBuffer = httpGETRequest(serverPathMap.c_str());
Я проверил правильность PNG-файла по правильному полученному заголовку. Однако мне нужны данные в формате HEX.

Это пример формата файла, созданного непосредственно компилятором.

Код: Выделить всё

    const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_clock_face_150x150_fixed_png_data = {
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, ...
У меня установлен код, позволяющий просматривать веб-сайт каждый час или одним нажатием кнопки. В настоящее время файл PNG хранится в строке «JSONBuffer». Я могу легко получить размер с помощью JSONBuffer.length();
Я пытаюсь отобразить изображение в заполнителе изображения Squareline Studio:

Код: Выделить всё

    //lv_image_set_src(ui_OpenWeatherMap, "Image from the Buffer");

ui_OpenWeatherMap //is the name of the image placeholder.
Мой вопрос: как преобразовать мой JSonBuffer в HEX. Я видел, как это было сделано на Python, но я недостаточно хорошо разбираюсь в Python, чтобы преобразовать это в C++.
Буду очень признателен за любую помощь.
Я пробовал несколько вещей.
Отображает весь буфер. Не в HEX

Код: Выделить всё

    Serial.println("jsonBuffer: ");
Serial.println(jsonBuffer);
Отображает только первые 10 или около того шестнадцатеричных чисел.

Код: Выделить всё

    snprintf(tempMap, bufferMapStringSize, "%s", jsonBuffer.c_str(), HEX);
Serial.println("jsonBuffer: ");
Serial.println(jsonBuffer);

Попытка вставить буфер напрямую также не работает.

Код: Выделить всё

   lv_image_set_src(ui_OpenWeatherMap, jsonBuffer.c_str());
Я пробовал и многое другое.

Подробнее здесь: https://stackoverflow.com/questions/793 ... to-rgb-hex

Вернуться в «C++»