Akumetsu | Bonjour, bonsoir,
Je vous énonce vite fait le problème, s'il y a besoin de plus d'informations n'hésitez pas à les demander :
J'envoie, via des socket en C en broadcast (sendto(...)), des données images sous la forme RVB en hexa dans une chaine chaine de caractère (1 pixel = "7F 53 00" par exemple). Les données sont bien reçues à l'application Objective-C mais je n'arrive pas à créer d'image à partir de ces données. Quelques hypothèses me sont venus :
- Dois-je plutôt envoyer des BYTE plutôt qu'une chaine de caractère ? (J'ai tenté maintes fois de le faire sans succès probant puisque la fonction sendto veut un char*).
- Les données à envoyer sont-elles correct en envoyant chaque couleur espacé d'un espace (pléonasme) ?
- Créer un fichier fpp en Objective-C puis le convertir en PNG, JPEG (ce que je faisais sur un linux pour tester)... voire l'afficher directement ?
- Il faut les stocker dans un array de type NSdata ?
Un très léger aperçu du code pour envoyer chaque pixel en langage C :
Code :
- #include ...
- #define BYTE unsigned char
- int Envoyer()
- {
- static BYTE red, green, blue ;
- char buffer[8192] ;
- sockfd = socket(AF_INET, SOCK_DGRAM, 0) ;
- // setsockopt, bind...
- sprintf(buffer, "%02x %02x %02x", red, green, blue) ; // buffer = "RR VV BB"
- SendBroadcast(sockfd, buffer) ;
- }
- int SendBroadcast(int sockfd, char* buffer) {
- if ((sendto(sockfd, buffer, strlen(buffer), MSG_DONTROUTE,
- (struct sockaddr *)&their_addr, sizeof(their_addr))) == -1) {
- return -1;
- }
- return 0;
- }
|
Merci d'avance. Message édité par Akumetsu le 03-05-2011 à 14:04:46
|