Pour ceux intéressés par la programmation des API bas niveaux.
J'ai posté sur le forum "hors sujet" de PC-Soft un projet GDImage/OpenGL qui fait du rendu 3D à partir d'une image 2D.
Tous les détails sont là
Capture d'écran
...
Pour ceux intéressés par la programmation des API bas niveaux.
J'ai posté sur le forum "hors sujet" de PC-Soft un projet GDImage/OpenGL qui fait du rendu 3D à partir d'une image 2D.
Tous les détails sont là
Capture d'écran
...
Je suis impressionné. Chapeau bas.
Bonjour
Merci pour ce partage
Voici une fonction qui peut se substituer à zGetDIBits.
Elle permet de charger directement les pixels d'un bitmap dans un tableau[x,y] d'entiers, sans utiliser l'API GetDIBits qui oblige de créer au préalable un DC et un CompatibleBitmap à la volée.
Notez l'inversion effectuée sur l'axe Y, car l'origine des pixels d'un bitmap mémoire se trouve en bas à gauche au lieu d'être en haut à gauche lorsqu'on dessine dans un DC.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 FUNCTION zGetPixels(LOCAL hBitmap is system int, LOCAL lpArray is system int) nRet is int IF (hBitmap) THEN bm is BITMAP GetObject(hBitmap, &bm) bmW is int = bm.bmWidth bmH is int = bm.bmHeight bmBPix is int = bm.bmBitsPixel / 8 // Have to revert raw order lpArray += (bmW * bmH * bmBPix) nScanLine is int = bmW * bmBPix lpBits is system int = bm.bmBits y is int FOR y = 1 TO bmH lpArray -= nScanLine Transfer(lpArray, lpBits, nScanLine) lpBits += nScanLine END nRet = -1 END RESULT nRet
...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager