- Visual Basic / VB.NET : Analyse de signal audio-numérique - CodeS SourceS
- Visual Basic / VB.NET : Un analyseur de spectre audio numerique - CodeS SourceS
- Visual Basic / VB.NET : Transformee de fourier dans les applications audio-numeriques - CodeS Source
- Forme d'onde d'un signal audio
- Amplifier un signal audio
L'importation d'image à partir d'un fichier bitmap me paraissant la seule solution pratique, j'ai, comme tu l'as évoqué, comparé les approches "mémoire" et "disque" de la gestion d'une image Windows bitmap. J'ai alors constaté que dessiner dans un fichier, en mémoire virtuelle, était plus rapide et moins gourmand en ressources que de travailler en mémoire avec des tableaux à deux dimensions. Cette bonne performance est due au fait, je pense, que les accès au disque se font seulement à l'ouverture et à la fermeture du fichier et que, dans l'intervalle, le système écrit dans le cache. Ceci est vrai à la condition que le fichier soit créé à sa taille définitive, sinon le système est susceptible d'accéder au disque en cours de travail pour ajuster la taille du fichier. Il faut donc utiliser un format Windows Bitmap non compressé, qui est à ma connaissance le seul format de fichier d'image dont on peut prévoir la taille exacte sans connaître le contenu. Ces conditions étant remplies, le fichier peut être utilisé comme mémoire vituelle (ce qui, au passage, allège considérablement les ressources de l'application).
Aujourd'hui, bien que je ne développe plus que rarement en VBA, je continue, par habitude, à utiliser cette technique.
Niveau performance le temps d'acces au fichier via le HDD doit être plus long qu'a la RAM, pourquoi ce choix ?
Merci beaucoup pour tes commentaires, c'est sympa.
Pour dessiner dans un bitmap, je n'utilise pas les fonctions de dessin de VB, mais je dessine plutôt dans un fichier au format bmp 256 couleurs que je charge ensuite dans un contrôle.
Voici comment je fais. D'abord, je crée sur disque un fichier bmp vide, mais entier, c.a.d. avec ses quatre structures bmpfileheader, bmpinfoheader, palette de couleurs et bitmap data. Une fois le fichier initialisé, l'application écrit directement les pixels dans la section bitmap data du fichier. C'est possible dans le cas d'un fichier bmp, celui-ci stockant l'image sous la forme d'un tableau matriciel de pixels (raster). Une fois le dessin terminé, l'application ferme le fichier bmp avant de charger l'image dans un contrôle.
Donc, l'application écris ses pixels dans un fichier, pas à l'écran. C'est la principale différence par rapport aux fonctions de dessin de vb.
Amicalement