Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 2019
-
29 mai 2008 à 17:46
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 2008
-
2 juin 2008 à 17:00
Bonjour M'sieurs'Dames,
Je suis en train d'essayer de combler une de mes nombreuses lacunes en prog' en tentant de dompter les pointeurs sous Delphi.
Pour cela, je fais des tests dans tous les sens.
Voici un de ces tests concernant ScanLine.
Ca marche, mais mon problème est que je ne comprends pas pourquoi.
Ce test ne fait que transformer une image couleur en niveaux de gris :
Je ne comprends pas pourquoi ma 2ème méthode est environ 25% plus rapide que la méthode ScanLine classique. En effet, dans les 2 méthodes, on parcourt toutes les lignes du Bmp pour les scanner une à une.
Pourquoi l'accès à chaque pixel est plus rapide en passant par un tableau?
'doit y avoir une histoire de gestion de la mémoire la-dessous, non?
Si une âme charitable pouvait m'allumer la lampe à Eugène ce serait sympa car je sens confusément que je n'ai encore rien compris à ces foutus pointeurs.
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 1 juin 2008 à 22:07
Bein non, c'est sûr!
Mais je cherchais le Mètre-Etalon-En-Platine pour savoir quand arrêter ma surchauffe synaptique (et ne me parle pas de distance parcourue en 1/299 792 458 secondes, stp!).
Sinon?
Je me demande si le TMemoryStream ne pourrait pas nous aider à régler le problème des ajustements de Bitmap de largeur impaire et, excité par la question, j'ai un neurone qui se demande quel peut bien être le rapport entre les pointeurs et les flux de données.
Mais c'est juste une question à la con d'un neurone curieux.
PS: Et toi, sinon?
-T'as optimiser ta révision du BAC un max, on dirait...
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 2 juin 2008 à 17:00
Je dirai que le TMemoryStream ne vas pas apporter grand chose car c'est plus un super-pointeur qu'un solveur de problèmes.
De plus, c'est une classe, et que par définition d'une classe, c'est lent.
Un flux = deux pointeurs + un integer:
1. Un premier sur le début du flux (pour ne pas "perdre" le début).
2. Un second sur la position actuelle de lecture/écriture dans le flux (c'est elle qui est incrémentée après avoir lu/écrit les infos souhaitées).
3. Un Int pour savoir la taille totale du flux (bien pratique tout de même)
Après, tu peux rajouter un truc qui t'indique la position (mais c'est juste PointeurActuel - PointeurDebut) ou de quoi te déplacer et hop! t'as un TStream !
Mais bon, le mieux, c'est encore les flux ou y'a vraiment deux programmes qui s'échangent quelque chose, càd un qui écrit dedans, qui transmet et l'autre qui lit, avec toute la gestion et la synchronisation qui va avec.
Finalement, ton neurone curieux avait pas une question à la con... ça m'a donné une idée.