У меня есть строка шестнадцатеричных байтов в этой форме:
Как я могу преобразовать эти байты в массив uint8_t *?
Это изображение для отображения электронных чернил, и я хочу показать его с void drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w, int16_t h, uint16_t color);
из https://learn.adafruit.com/adafruit-gfx-graphics-library/graphics-primitives.
Я использую ESP8266 и шестнадцатеричные байты String загружается из файла SPIFFS. Спасибо.
Я пробовал:
File f = SPIFFS.open("/photo1.txt", "r");
String input = f.readString();
Serial.println(input);
Serial.println("Converting to vector");
std::vector<uint8_t> output;
for (unsigned i = 0; i < input.length(); i += 2) {
char byte_digits[3] = { input[i], input[i + 1] };
int value = strtoul(byte_digits, nullptr, 16);
output.push_back(value);
}
Serial.println("Converting to uint8_t arr");
uint8_t *img = output.data();
ESP перезапускается при достижении Конвертация в вектор: