Stroumi
Messages postés7Date d'inscriptionmardi 15 mai 2007StatutMembreDernière intervention30 mars 2009
-
19 févr. 2009 à 14:34
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
20 févr. 2009 à 11:03
Bonjour,
je récupèré une image via une camera via la SDK de cette camera.
Il s'agit d'un événement, lorsque l'image est prête, elle est envoyée. (il s'agit d'une camera 360°).
Puis, je l'affiche sur ma picturebox.
Mais j'ai 2 autres soucis :
-
la mémoire ne cesse d'augmenter, j'ai beau mettre des Dispose() sur mes
Bitmap, remettre ma picturebox a null, le probleme est toujours la.
-
l'autre soucis vient du fait que l'affichage est assez lent, la camera
doit envoyer une image chaque seconde, mais le tps que ma fonction
fasse sa boucle en longeur et largeur de mon Bitmap pour le remplir, ca
prend un certain tps, du coup, j'affiche une image touts les 3
secondes. Je sais que mes images sont enorme (9600,750), mais n'y a
t'il pas un autre moyen que de faire cette boucle pour remplir ma
Bitmap ?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 19 févr. 2009 à 16:34
Salut, oui 9600px c'est grand.. mais le vrai problème c'est l'utilisation de la méthode SetPixel, on ne peut pas travailler correctement sur un bitmap avec cette méthode, tu dois utiliser les pointeurs et la méthode LockBits ( y'a des km d'exemples sur le net ). Et essaye aussi de dessiner toi même l'image avec DrawImage plutôt que d'assigner une nouvelle image à la PictureBox.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 19 févr. 2009 à 16:41
Tu peux aussi utiliser >ce constructeur< de la classe Bitmap, qui est très pratique et évite de faire une copie de l'image.
Pour la mémoire qui augmente c'est soit que la PictureBox maintient une copie et ne la détruit pas tout de suite, soit le buffer non-managé ( byte* data ) qui n'est jamais détruit et dans ce cas c'est la doc du SDK qui doit te dire si t'es responsable de sa destruction ou pas.
Stroumi
Messages postés7Date d'inscriptionmardi 15 mai 2007StatutMembreDernière intervention30 mars 2009 20 févr. 2009 à 10:33
Salut, merci deja pour votre aide.
J'ai trouvé qq solutions pour mon soucis d'image, mais voila, je me rend compte que ca fait trop longtemps que j'ai plus fait de C et utiliser les pointeur.
Du coup, je tombe tout le tps que la même erreur : Impossible de convertir de 'byte*' en 'byte[]'..
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 20 févr. 2009 à 11:03
Comme je ne connais pas ton code, je ne peux pas te dire où pourrait être ton erreur. Cependant, voici un code lockbits/unsafe qui marche (en l'occurrence il transforme l'image en niveaux de gris en faisant la moyenne des 3 composantes)