begin process at 2008 08 20 15:26:23
1 228 895 membres
260 nouveaux aujourd'hui
14 259 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ROTATION (RAPIDE) DE BITMAP (À 360°) EN PUR GDI


Information sur la source

Catégorie :Graphique Classé sous : Rotation, Angle, PlgBlt Niveau : Débutant Date de création : 25/02/2008 Date de mise à jour : 25/02/2008 14:19:33 Vu / téléchargé: 2 268 / 218

Note :
Aucune note

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Exemple simple de rotation de bitmap en pur GDI

Ceci est possible grâce à l'utilisation de la fonction PlgBlt

Le code est assez simple et commenté ... juste ce qu'il faut ;-)
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

25 février 2008 14:19:33 :
Ajout de capture d'écran
  • signaler à un administrateur
    Commentaire de Caribensila le 25/02/2008 15:13:07

    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. :)

    Bravo Cirec!

  • signaler à un administrateur
    Commentaire de florenth le 25/02/2008 15:36:48

    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 ;-)

  • signaler à un administrateur
    Commentaire de Caribensila le 25/02/2008 16:16:31

    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.  

    lol

  • signaler à un administrateur
    Commentaire de cirec le 25/02/2008 17:52:49 administrateur CS

    ha ha ha ...

    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.

  • signaler à un administrateur
    Commentaire de DRJEROME le 26/02/2008 14:49:04

    Bonjour

    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

  • signaler à un administrateur
    Commentaire de Debiars le 04/03/2008 14:16:47

    Salut Cirec,
    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

  • signaler à un administrateur
    Commentaire de cirec le 04/03/2008 14:28:26 administrateur CS

    @Debiars:

    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);

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS