GETPIXEL TRÈS RAPIDE

Signaler
Messages postés
167
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
18 novembre 2007
-
 Utilisateur anonyme -
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
je vais regarder ça, je crois que ça arrive que sur les images aillant une hauteur differente de la largeur.
Messages postés
3
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
6 mars 2008

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
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 ;)
Messages postés
4
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
2 août 2006

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+
Messages postés
4
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
2 août 2006

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
Messages postés
121
Date d'inscription
vendredi 17 octobre 2003
Statut
Membre
Dernière intervention
14 octobre 2016

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.
Messages postés
167
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
18 novembre 2007
1
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
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

Bravo pour le picture box ...

Merci

Afyn
Navedac
Messages postés
12
Date d'inscription
jeudi 8 avril 2004
Statut
Membre
Dernière intervention
31 octobre 2008

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
oui c'est possible, je met à jour la source en ajoutant un picturebox.
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

On peut appliquer ça au background d'un contrôle ?

Afyn
Navedac
Utilisateur anonyme
oula! t'as raison je corrige ça tout de suite!
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
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
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.
Messages postés
167
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
18 novembre 2007
1
Tu peux faire des tests de vitesse et obtenir un résultat "parlant" ?
Ca me parait bizarre que ca soit "beaucoup plus rapide" merci :)