Recevoir une image

Vous pouvez utiliser la méthode syncGetImage pour récupérer une image de façon synchrone. La méthode envoie la commande appropriée, et attend le résultat, donc elle bloque votre thread en attendant que l'image soit reçue.

client->send("camera.resolution = 0;camera.gain = 2;");
int width, height;
client->syncGetImage("camera", myBuffer, myBufferSize, IMAGE_JPEG, URBI_TRANSMIT_JPEG, width, height);

Le premier paramètre est le nom de la caméra. Le second est le buffer (void*) qui sera rempli avec les données de l'image. Le troisième doit être une variable nombre entier égale à la taille du buffer. La fonction assigne à cette variable la taille des données. Si le buffer est trop petit, les données seront tronçonnées.

Le quatrième paramètre est le format dans lequel vous voulez recevoir les données de l'image. Les valeurs possibles sont IMAGE_RGB pour une image raw RGB 24 bit par pixel, IMAGE_PPM pour une PPM file, IMAGE_YCbCr pour raw YCbCr data, et IMAGE_JPEG pour un fichier jpeg-compressed.

Le cinquième paramètre peut avoir la valeur URBI_TRANSMIT_JPEG ou URBI_TRANSMIT_YCbCR et spécifie comment l'image doit être transmise entre le robot et le client. Transmettre des images JPEG augmente le frame rate et doit être utilisé pour de meilleurs performances.

Enfin les paramètres de largeur et de hauteur sont remplit avec la largeur et la hauteur de l'image en retour.