Мне нужна помощь в преобразовании файла .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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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