GETPIXEL TRÈS RAPIDE

Pym Corp Messages postés 166 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 18 novembre 2007 - 19 avril 2006 à 17:27
 Utilisateur anonyme - 3 janv. 2008 à 13:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37145-getpixel-tres-rapide

Utilisateur anonyme
3 janv. 2008 à 13:16
je vais regarder ça, je crois que ça arrive que sur les images aillant une hauteur differente de la largeur.
lukebalthazar Messages postés 3 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 6 mars 2008
2 janv. 2008 à 19:06
C'est juste parfait!
mais....
certaines images, et je ne comprends pas pourquoi "certaines", se trouvent decalées lors du setpixel.
je fais :

Color_S = map1.Getpixel(i, j)
Color_D = Color.FromArgb(255, Color_S.R, Color_S.G, Color_S.B)
map2.Setpixel(i, j, Color_D)

donc map1 = map2 normalement....et bien non : les coordonnées se trouvent decalées au fur et a mesure comme si cela ecrivait en diagonale....une idee ?

Merci.
Utilisateur anonyme
23 avril 2007 à 20:04
il est possible que j'ai fait une petite erreur avec "pv_bitmap.Width * bitmapData.Stride", remplace par ça dans Sub New:

'[...]
ReDim b(bitmapData.Height * bitmapData.Stride)
System.Runtime.InteropServices.Marshal.Copy(bitmapData.Scan0, b, 0, b.Length - 1)
'[...]

tiens moi au courant ;)
laurent_psy Messages postés 4 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 août 2006
2 août 2006 à 06:49
ce que je veux dire c est que pour la rapidite il faut oublier les methodes genre "getpixel" que l on doit appeler pour chaque pixel. sur ce a+
laurent_psy Messages postés 4 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 août 2006
2 août 2006 à 06:47
dans vc++, en utilisant un simple array a une dimesion on peut changer toutes les couleurs de l image en environ 15ms pas plus. meme 0.56s je trouve ca enorme. imaginez que votre video camera numerique mette ce temps la sur chaque trame, pas tres fluide non? 2fps
Chrysostome Messages postés 121 Date d'inscription vendredi 17 octobre 2003 Statut Membre Dernière intervention 14 octobre 2016
29 avril 2006 à 16:30
Salut à tous!
Comme je ne sais pas où poser ma question, et que les lecteurs d'içi me semblent avertis:
Comment procéderiez-vous pour récupérer par scan, les réponses d'une fiche avec cases à cocher?
Merci de vos réponses.
Pym Corp Messages postés 166 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 18 novembre 2007
20 avril 2006 à 23:50
Par contre dommage que ca ne soit pas plus commenté que ça, y'a des trucs que je connais pas du tout dans BitmapFast perso
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
20 avril 2006 à 21:01
Bravo pour le picture box ...

Merci

Afyn
Navedac
archimed111 Messages postés 12 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 31 octobre 2008
20 avril 2006 à 16:54
Non on peux pas c'est juste pour les pixels d'une image.

J'avais deja utilisé ca moi aussi pour modifier les pixels d'une image 1 à 1 pour par exemple changer les couleurs d'une image.
En fait c'est beaucoup plus rapide on utilise des pointeurs, c'est un peux comme du code unsafe en c#.
Pour donner un chiffre avec le code que j'avais fait sur une grande image a modifié ca donnait :
- pixel par pixel : 12 seconde
- code non managé : 0.56 seconde
- en utilisant les colormatrix : 0.65 seconde.
Utilisateur anonyme
20 avril 2006 à 16:50
oui c'est possible, je met à jour la source en ajoutant un picturebox.
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
20 avril 2006 à 13:26
On peut appliquer ça au background d'un contrôle ?

Afyn
Navedac
Utilisateur anonyme
20 avril 2006 à 10:31
oula! t'as raison je corrige ça tout de suite!
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 avril 2006 à 09:27
je suis surtout étonné de voir de telles différences dans les formules de calcul des coordonnées :

red = b((x * 3) + y * (i_Width * 3))
green = b((x * 3 + 1) + y * (i_Width * 3))
blue = b((x * 3 + 2) + y * (i_Width * 3))

b(x + y * Width) = red
b((x + 1) + (y + 1) * Width) = green
b((x + 2) + (y + 2) * Width) = blue

pourquoi avoir laissé de telles disparités ?
Utilisateur anonyme
19 avril 2006 à 20:12
il te suffit de télécharger le zip et de lancer le projet.
Tu y verras la difference de temps entre les 2 methodes getpixel en millisecondes.
Pym Corp Messages postés 166 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 18 novembre 2007
19 avril 2006 à 17:27
Tu peux faire des tests de vitesse et obtenir un résultat "parlant" ?
Ca me parait bizarre que ca soit "beaucoup plus rapide" merci :)
Rejoignez-nous