OVH Cloud OVH Cloud

envoyer une image pil 1.1.5 par le réseau

5 réponses
Avatar
maxime_phan
Bonjour tout le monde, j'essaie de cr=E9er un soft python de webcam en
utilisant la librairie pil et enet (pour le r=E9seau). pour linstant jai
mon image pil que jai obtenue de la webcam et jessaie de lenvoyer sur
le serveur avec enet:

self.peer.send(0, image.tostring(), enet.FLAG_RELIABLE)

jai cette erreur:
TypeError: argument 2 must be string without null bytes, not str

est ce que quelqu'un sait quoi faire pour que ca marche?

dans la fonction tostring() l'encoder par defaut est "raw", yen a peut
etre une autre qui marche?
Merci d'avance

5 réponses

Avatar
Laurent Pointal
wrote:

Bonjour tout le monde, j'essaie de créer un soft python de webcam en
utilisant la librairie pil et enet (pour le réseau). pour linstant jai
mon image pil que jai obtenue de la webcam et jessaie de lenvoyer sur
le serveur avec enet:

self.peer.send(0, image.tostring(), enet.FLAG_RELIABLE)

jai cette erreur:
TypeError: argument 2 must be string without null bytes, not str

est ce que quelqu'un sait quoi faire pour que ca marche?

dans la fonction tostring() l'encoder par defaut est "raw", yen a peut
etre une autre qui marche?
Merci d'avance


L'erreur est claire.
Les chaînes Python peuvent contenir du binaire (ie. y-compris des octets à
zéro). Et la méthode self.peer.send() n'accepte pas ces zéros (elle doit
être prévue pour n'envoyer que du texte).

Tu as le même genre de problème que les personnes qui envoient des pièces
jointes binaires dans un courriel, ou sur un forum usenet.
Pour cela, regarde du côté de uuencode (module uu), base64 et consors (le
module binascii doit regrouper diverses interfaces).

Par contre, tu vas augmenter la taille des données transmises. Pour les
newsgroup alt.binaries.*, il y avait un encodage (yenc je crois) qui était
assez optimisé... mais je n'ai pas vu de module correspondant.

A+

Laurent.

Avatar
hg
wrote:
Bonjour tout le monde, j'essaie de créer un soft python de webcam en
utilisant la librairie pil et enet (pour le réseau). pour linstant jai
mon image pil que jai obtenue de la webcam et jessaie de lenvoyer sur
le serveur avec enet:

self.peer.send(0, image.tostring(), enet.FLAG_RELIABLE)

jai cette erreur:
TypeError: argument 2 must be string without null bytes, not str

est ce que quelqu'un sait quoi faire pour que ca marche?

dans la fonction tostring() l'encoder par defaut est "raw", yen a peut
etre une autre qui marche?
Merci d'avance

Tu as eu ta réponse du group US: quel est se serveur ... qui ne semble

accepter que de l'ASCII.

hg

Avatar
maxime_phan
oui ca marche avec la base64, merci beaucoup!




wrote:
Bonjour tout le monde, j'essaie de créer un soft python de webcam en
utilisant la librairie pil et enet (pour le réseau). pour linstant jai
mon image pil que jai obtenue de la webcam et jessaie de lenvoyer sur
le serveur avec enet:

self.peer.send(0, image.tostring(), enet.FLAG_RELIABLE)

jai cette erreur:
TypeError: argument 2 must be string without null bytes, not str

est ce que quelqu'un sait quoi faire pour que ca marche?

dans la fonction tostring() l'encoder par defaut est "raw", yen a peut
etre une autre qui marche?
Merci d'avance

Tu as eu ta réponse du group US: quel est se serveur ... qui ne semble

accepter que de l'ASCII.

hg



Avatar
NicolasP
Tu as eu ta réponse du group US: quel est se serveur ... qui ne semble
accepter que de l'ASCII.


Et la réponse est ?

Nicolas

Avatar
hg
NicolasP wrote:

Tu as eu ta réponse du group US: quel est se serveur ... qui ne semble
accepter que de l'ASCII.


Et la réponse est ?

Nicolas


Ben que si tu ne peux pas passer de binaire, passe autre chose ...
base64 a été proposé.

hg