I'm trying to get an rgb image by setting cfg.setRGB(), but there's always a capture fail. i try to send that image to a webserver specifying that it's raw data, and trying to save it as a .tiff image. By the way, the main issue is that the image capture is not done.
Could you please tell me if I'm misunderstanding something?
Code:
Camera config
{
using namespace esp32cam;
Config cfg;
//Para ello primero escojo que utilice los pines definidos del modulo AiThinker que es del cual dispongo
cfg.setPins(pins::AiThinker);
//Le digo que mi resolucion sea la maxima, la cual he definido anteriormente (1600x1200)
cfg.setResolution(hiRes);
cfg.setBufferCount(1);
//Le digo que la calidad del JPG sea de 100, para que asi se comprima lo minimo posible, aunque la imagen pesara mas y tardara mas en mandarse
cfg.setJpeg(80);
//cfg.setGrayscale();
//cfg.setRgb();
// Si todo esta bien que se incialice la camara con la configuracion descrita
bool ok = Camera.begin(cfg);
Serial.println(ok ? "CAMERA OK" : "CAMERA FAIL");
if(ok == false){
bool ok = Camera.begin(cfg);
}
}
Image send
auto frame = esp32cam::capture();
// Entonces en caso de que no se haya capturado nada, que me devuelva un mensaje de error, asi como que me deuvleva
// un http status de 500 el cual significa que hay un error interno en el servidor de que hay un error en el codigo
// y para que asi el servidor web sepa que algo ha ido mal durante la request!!
if(frame == nullptr) {
Serial.println("CAPTURE FAIL");
server.send(503, "", "");
return;
}
//En caso de que la foto se haya hecho, entonces que me devuelva un mensaje satisfactorio en el serial port junto con
//las medidad del ancho, altura y el tamaño de la imagen
Serial.printf("CAPTURE OK %dx%d %db\n", frame->getWidth(), frame->getHeight(),
static_cast<int>(frame->size()));
//Si se ha hecho bien tambien tomara ese tamaño como el tamaño del contenido en el servidor
server.setContentLength(frame->size());
//Y devolvera un HTTP 200 el cual significa que todo ha ido bien y despues le digo que el contenido que hay en el servidor web sea una imagen de formato jpeg!!
// Asi el navegador sabra que tiene que esperar una imagen!
server.send(200, "image/raw"); // descomentar cuando se quiera enviar una imagen en formato RAW/GRAYSCALE
//server.send(200, "image/jpeg"); // descomentar cuando se quiea enviar una imagen en formato JPG
// Acto seguido se manda la imagen al servidor
WiFiClient client = server.client();
frame->writeTo(client);
Hi,
I'm trying to get an rgb image by setting cfg.setRGB(), but there's always a capture fail. i try to send that image to a webserver specifying that it's raw data, and trying to save it as a .tiff image. By the way, the main issue is that the image capture is not done.
Could you please tell me if I'm misunderstanding something?
Code: Camera config
Image send