PC SOFT
DEPOT EN LIGNE
POUR WINDEVWEBDEV ET WINDEV MOBILE

DIB Tutor
Publié par Patrice TERRIER
dans la catégorie Graphisme
Nouveautés



Description
Ceci est un projet WD17, qui peut fonctionner soit en mode 32-bit, soit en mode 64-bit.
(C'est la mise-à-jour d'un projet WD9 écrit en 2006.)

Il montre l'utilisation de 3 techniques différentes pour remplacer tous les pixels d'une certaine couleur par une autre.
1 - Avec les fonctions dPixelColor/dPoint du WLangage.
2 - Avec l'API bas niveau dans la procédure ReplaceColor.
3 - Avec la fonction ZI_ReplaceRGBColor de la bibliothèque graphique GDImage.

La version 64-bit est configurée par défaut.
Si vous voulez tester en mode 32-bit, vous devez remplacer la constante GDImage = "GDImage64" par GDImage = "GDImage".

Selon qu'on utilise l'API GetObjectA en mode 32-bit ou 64-bit, il est impératif d'ajuster l'alignement de la structure BITMAP car l'alignement est effectué sur 4-byte en 32-bit, et sur 8-byte en 64-bit.
Pour contourner ce problème j'utilise 2 structures différentes, BITMAP en 32, et BITMAP64 en 64 (membre supplémentaire dummy de 4-byte pour passer à une taille de 32 octets au lieu des 28 utilisés en 32-bit).
Ce qui se traduit dans la procédure ReplaceColor, par le code qui figure ci-dessous pour gérer les 2 configurations.

IF In64bitMode() THEN
GetObject(hBitmap, &bm64)
bmW = bm64.bmWidth; bmH = bm64.bmHeight
bmBPix = bm64.bmBitsPixel
ELSE
GetObject(hBitmap, &bm)
bmW = bm.bmWidth; bmH = bm.bmHeight
bmBPix = bm.bmBitsPixel
END

Le temps utilisé par chacune des 3 versions est mesuré avec précision grâce à l'utilisation des API "QueryPerformanceFrequency" et "QueryPerformanceCounter".

Pour tester réellement la vitesse des 3 solutions proposées, amusez-vous a cliquer plusieurs fois sur chaque bouton pour voir la réactivité de l'affichage.

Et si vous le pouvez, faites un test en version 17 et en version 25, pour comparer les résultats
Illustrations, copies d'écran
none
none
Avis des utilisateurs
(Pour noter la ressource, cliquez sur Ecrire un avis)
Aucun avis ou commentaire ? Soyez le premier !
A PROPOS
EVALUATION :
00Aucune évaluation
TELECHARGEMENTS :
64
PUBLIÉE :
30 avril 2020
VERSION :
1.00
CONCERNE :
WINDEV
Version minimale : WD17+
TAILLE :
607,7 Ko
DU MÊME DÉVELOPPEUR