codures
Messages postés2Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention12 septembre 2009 12 sept. 2009 à 00:07
Salut Cirec,
Je te propose un petit test pour mieux comprendre la rapidité de cette fonction (PlgBlt).
Au lieu de charger un cube orné des nouilles, ou autres images de taille inferieure à 512x512, charge donc une photo faite avec un appareil photo numérique (disons une photo.bmp de 3500x2500 en pf24bit) et essaye de la tourner légèrement … Je te mets 10/10 pour la documentation et pour le code …
PS : N’essaye pas le Ctrl+Alt+Suppr, ça ne marche pas dans ces cas là.
informatixo
Messages postés129Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention25 juillet 20121 13 nov. 2008 à 22:48
Merci beaucoup pour cette source qui est bien commentée et bien codée.
Je me tente à mettre une note car je vois que personne ne l'a encore fais. Je te mets 9 / 10 pour ne pas mettre 10 / 10.
J'apprécie particulièrement la clarté du code et la vitesse d'exécution de la rotation. Je ne connaissais pas PlgBlt mais je l'a place dans un coin de ma tête.
je ne suis pas certain d'avoir bien compris ta demande.
Tu aimerais pouvoir enregistrer l'image dans une position (après rotation)
Dans ce cas :
Il faut savoir que peut importe l'angle de rotation
PntArray[0] <----- représente le coin supérieur gauche de l'image
PntArray[1] <------ représente le coin supérieur droit de l'image
PntArray[2] <------ représente le coin inférieur gauche de l'image
le coin inférieur droit est calculé automatiquement par PlgBlt
Donc en créant un Bitmap et en lui donnant des dimmensions suffisante (pour ne pas tronquer l'image) tu peux afficher/enregistrer le résultat avec :
pour mettre tout ça dans une fonction ... c'est pas un problème
pour choisir le centre de rotation ... c'est pas un problème
pour une rotation sur 3 axes ... c'est pas un problème (si Francky passe par ici il pourra le confirmer) j'avais fait il y a déjà longtemps de cela un cube avec 6 faces différentes qui tournait sur 3 axes.
par contre en ce qui concerne l'anti-aliasing je ne me suis jamais penché sur le problème
Je me suis efforcé à faire une source aussi simple que possible (à la portée de tous) et vous me demandez juste l'inverse ^^
Merci pour vos appréciations.
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 25 févr. 2008 à 16:16
Oué!
Et puis 'faudrait que ça tourne selon les 3 axes avec un verso pour simuler une feuille de platane virevoltant dans le vent d'automne...
Merci Cirec.
Génial !
Maintenant, je veux tout ça dans une fonction et pouvoir choisir le centre de rotation.
Et puis de l'anti-aliasing sur les bords siouplait ^^ si c'est possible ;-)
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 25 févr. 2008 à 15:13
Salut,
J'aurais bien aimé disposer de ce source quand je faisais mon "cube tournant".
Ca m'aurait évité d'utiliser le l'asm sans rien y connaître. :)
12 sept. 2009 à 00:07
Je te propose un petit test pour mieux comprendre la rapidité de cette fonction (PlgBlt).
Au lieu de charger un cube orné des nouilles, ou autres images de taille inferieure à 512x512, charge donc une photo faite avec un appareil photo numérique (disons une photo.bmp de 3500x2500 en pf24bit) et essaye de la tourner légèrement … Je te mets 10/10 pour la documentation et pour le code …
PS : N’essaye pas le Ctrl+Alt+Suppr, ça ne marche pas dans ces cas là.
13 nov. 2008 à 22:48
Je me tente à mettre une note car je vois que personne ne l'a encore fais. Je te mets 9 / 10 pour ne pas mettre 10 / 10.
J'apprécie particulièrement la clarté du code et la vitesse d'exécution de la rotation. Je ne connaissais pas PlgBlt mais je l'a place dans un coin de ma tête.
Merci et bonne continuation à tous.
4 mars 2008 à 14:28
je ne suis pas certain d'avoir bien compris ta demande.
Tu aimerais pouvoir enregistrer l'image dans une position (après rotation)
Dans ce cas :
Il faut savoir que peut importe l'angle de rotation
PntArray[0] <----- représente le coin supérieur gauche de l'image
PntArray[1] <------ représente le coin supérieur droit de l'image
PntArray[2] <------ représente le coin inférieur gauche de l'image
le coin inférieur droit est calculé automatiquement par PlgBlt
Donc en créant un Bitmap et en lui donnant des dimmensions suffisante (pour ne pas tronquer l'image) tu peux afficher/enregistrer le résultat avec :
PlgBlt(BMPDest.Canvas.Handle, PntArray, BMP.Canvas.Handle, 0, 0, BMP.Width, BMP.Height, 0, 0, 0);
4 mars 2008 à 14:16
Moi, j'aimerai bien récupérer dans un fichier le bitmap dans sa nouvelle position... Tel quel, je ne récupère qu l'image d'origine.
Même réfexion à drjerome qui en plus me rogne des parties d'image.
Cela me servirait bien pour redresser de quelques degrés des images scannées de traviole.
Pour la vitesse d'exécution, y a rien à dire, c'est --->
jp ofBiars
26 févr. 2008 à 14:49
oui dans les fonctions GDI
il y a
"PlgBlt" et aussi "SetWorldTransform"
il y a un exemple que j'ai fait, si vous voulez le voir en tapant "JROD SetWorldTransform" sur google
A+
drjerome JROD
25 févr. 2008 à 17:52
prenez un ticket ... et faites la queue ... lolll
Plus sérieusement,
pour mettre tout ça dans une fonction ... c'est pas un problème
pour choisir le centre de rotation ... c'est pas un problème
pour une rotation sur 3 axes ... c'est pas un problème (si Francky passe par ici il pourra le confirmer) j'avais fait il y a déjà longtemps de cela un cube avec 6 faces différentes qui tournait sur 3 axes.
par contre en ce qui concerne l'anti-aliasing je ne me suis jamais penché sur le problème
Je me suis efforcé à faire une source aussi simple que possible (à la portée de tous) et vous me demandez juste l'inverse ^^
Merci pour vos appréciations.
25 févr. 2008 à 16:16
Et puis 'faudrait que ça tourne selon les 3 axes avec un verso pour simuler une feuille de platane virevoltant dans le vent d'automne...
Merci Cirec.
lol
25 févr. 2008 à 15:36
Maintenant, je veux tout ça dans une fonction et pouvoir choisir le centre de rotation.
Et puis de l'anti-aliasing sur les bords siouplait ^^ si c'est possible ;-)
25 févr. 2008 à 15:13
J'aurais bien aimé disposer de ce source quand je faisais mon "cube tournant".
Ca m'aurait évité d'utiliser le l'asm sans rien y connaître. :)
Bravo Cirec!