Как сохранить растровое изображение с помощью OV7670 ESP32 и SPIFFS?
Я делаю проект камеры Wi-Fi, используя OV7670
а также ESP32
комплекты: https://github.com/bitluni/ESP32CameraI2S.
Как я могу сохранить растровое изображение, используя SPIFFS
в File
?
Часть кода:
void Get_photo (AsyncWebServerRequest * request) {
camera-> oneFrame ();
File file = SPIFFS.open ("/ Images / test.bmp", FILE_WRITE); // How to save to this file?
for (int i = 0; i <BMP :: headerSize; i ++)
{
bmpHeader [i];
}
for (int i = 0; i <camera-> xres * camera-> yres * 2; i ++)
{
camera-> frame [i];
}
Serial.println ("PHOTO_OK!");
}
0 ответов
Не уверен, что вам все еще нужен ответ, но он может кому-то помочь. Вы читаете значения, но не записываете их в файл.
void Get_photo (AsyncWebServerRequest * request) {
camera-> oneFrame ();
File file = SPIFFS.open ("/ Images / test.bmp", FILE_WRITE); // Here the file is opened
if (!file) {
Serial.println("Error opening the file."); // Good practice to check if the file was correctly opened
return; // If file not opened, do not proceed
}
for (int i = 0; i <BMP :: headerSize; i ++)
{
file.write(bmpHeader [i]); // Writes header information to the BMP file
}
for (int i = 0; i <camera-> xres * camera-> yres * 2; i ++)
{
file.write(camera-> frame [i]); // Writes pixel information to the BMP file
}
file.close(); // Closing the file saves its content
Serial.println ("PHOTO_OK!");
}
Имейте в виду, что каждый раз, когда вы звоните Get_photo
, он перезапишет test.bmp
потому что два файла не могут иметь одно и то же имя.
Надеюсь, это кому-то поможет.