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.
Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.
Sur internet, tout est vrai ! Honoré de Balzac
Make it real not fantasy... Herman Rarebell
Bonjour
Merci pour ce partage
------------------------------------------------------------------------------------------------------------------------------------------
Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
------------------------------------------------------------------------------------------------------------------------------------------
Site perso : Formation, Expérience, Réalisations, ...
Blog : Le Blog de DSR57 - Programmation WinDev
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