thorodin
Messages postés22Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention 5 mai 2009
-
12 août 2006 à 17:37
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014
-
18 août 2006 à 23:43
bonjour,
voila le problème: il faut que je transfère automatiquement des images jpeg d'une caméra à un PC.
La caméra doit se comporter comme un client et le PC comme un serveur . est ce que quelqu'un pourrait m'aiguiller sur l'utilisation d'un serveur ftp et d'un client progrmmé en C?
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 12 août 2006 à 19:38
Avec les sockets peut-être. C'est pas les exemples qui manque ici. Sinon, il existe wininet qui est asser simple d'utilisation mais reste quand même limité.
thorodin
Messages postés22Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention 5 mai 2009 13 août 2006 à 12:35
merci de vos réponses.
La caméra doit prendre une image toute les 5 secondes (par exemple) et l'envoyer au PC.
Le truc que j'aimerai faire c d'envoyer des fichiers jpeg enregistré sur la caméra au PC.
J'ai déjà réalisé un prog avec dev c++ où j'envoie un top du PC et la caméra envoie un vecteur avec les luminances au PC et ensuite j'enregistre les images au format PGM, mais les images sont saturé, et la taille des fichiers est trop important.
Alors que sur la caméra il existe déjà une fonction qui enregistre les images au format jpeg et j'aimerai transféré automatiquement ses fichiers par ethernet.
est ce que que je dois "ouvrir" le fichier jpeg pour envoyer les valeurs ou est ce que c possible de transférer direct le fichier.
Tu dois transferer les images en t'aidant des sockets.
Je te donnes en gros les étapes:
Il faut savoir ouvrir un fichier( exemple avec fopen ...) mettre une partie du fichier dans un buffer d'environ de 1024 octect puis l'envoyer par les socket puis les 1024 octect suivant ainsi de suite.
Et de l'autre coté il creer un nouveau fichier et il y colle les buffers recus les un aprés les autres petit a petit, et au final il a l'image entiere.
Au préalable il aurait peut-etre fallu transmettre le nom du fichier envoyé sa taille, et déterminé la taille du dernié buffer car le fichier n'est pas obligatoirement un multiple de 1024 : /
J'ai codé une fonction pour envoyé des fichiers et une autres qui les recois mais c'est mal codé je trouve il y avait un moyen de mieu codé...mais bon ca marche alors si elle t'interesse donne ton e-mail
MaLaDeDeDe 97one
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 15 août 2006 à 17:40
J'ai cru comprendre que tu voulais transférer ton JPEG par socket sans enregistrer un fichier et ensuite le réouvrir pour l'envoie. J'ai chercher et si tu utilises les fonctions fournis avec ta cam tu ne pourra pas, seule solution serait de convertir l'image directement en mémoire et l'envoyer. Dans un tel cas tu peux toujours te faire un algorithme de compression maison (LZW). Si tu prends la solution du fichier temporaire il y a une API pour envoyer un fichier par socket ... TransmitFile il me semble.
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 18 août 2006 à 23:43
C'est parfaitement normal que sa ne fonctionne pas, quand tu transfères des fichiers tu dois éviter les fonctions de chaine de caractère (en l'occurence sprintf) ces fonctions sont conçus spécifiquement pour ignorer les 0 (une norme du C). Donc travaille directement avec des tableaux et évite toute fonctions de chaine et sa va fonctionner #1.