IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6 ] Comment faire pivoter une IMAGE


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut [VB6 ] Comment faire pivoter une IMAGE
    Bonjour , j'ai regardé sur le net ce qui etait proposé pour faire pivoter une image mais tout est HYPER COMPLIQUE ...... et tiens 1 page A4 de code ...... Ya rien de plus simple pour faire cette rotation ??

    merci d'avance
    amicalement lucas

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    La rotation d'une image n'est en effet pas quelque-chose de simple !

    Si une page de code te fait peur, alors oublie (la baguette magique n'existe pas)

  3. #3
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    On peut pas faire pivoter une image en moins d'une page de code ???????????
    Dans ce cas la , je vais poster le code que j'ai trouver , mais faut que je change plein de truc car ils utilisent tous des Picture box et non des Image

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Un code ne se mesure pas en pages mais en teneur et en intelligence de sa teneur... puis en temps d'exécution (bien évidemment).
    Ceci étant dit !
    Tu peux toujours traiter pixel par pixel et utiliser la méthode PaintPicture (aide en ligne)
    Ce ne seront que des "déplacements" arithmétiques élémentaires ! Et ce sera très lent à l'exécution, voilà !
    C'est là mon dernier message sur ce sujet !

  5. #5
    Membre éclairé Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Par défaut
    et poum, y'en a un qui vient de se mettre jfmarques sur le dos :p

    pour repondre a ta question Lucas, j'ai deja vu la complexite du code pour faire du redimentionnement d'image, donc j'imagine meme pas la complexite et la prise de tete que ca doit etre pour faire une rotation .

    je te souhaite bien du courage ^^

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Non, Riesseg, rien n'est si difficile que ça pour qui veut réellement se mettre au développement, sois rassuré !
    Je pense que cette rotation apparaîtra dans peu de temps dans la FAQ

  7. #7
    Membre éclairé Avatar de malhivertman1
    Inscrit en
    Avril 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 337
    Par défaut
    Citation Envoyé par jmfmarques
    C'est là mon dernier message sur ce sujet !
    Tu as menti

    J'ai regarder certain code proposé par d'autres personnes et ca va, ce n'est pas la mort non plus..

  8. #8
    Membre éclairé Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Par défaut
    Citation Envoyé par jmfmarques
    Non, Riesseg, rien n'est si difficile que ça pour qui veut réellement se mettre au développement, sois rassuré !
    Je pense que cette rotation apparaîtra dans peu de temps dans la FAQ
    j'ai pas dis difficile, j'ai dit complexe...

  9. #9
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    ouais j'imagine bien ma galére surtout qu' à chaque fois qu'on pe dis kkchose , c'est jamais argumenté d'un exemple pour me metre sur la voie ........

  10. #10
    Membre éclairé Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Par défaut
    t'as pris la pillule bleue.

    bienvenue dans le monde réel du developpeur Neo.

  11. #11
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    Voila comment faire une rotation de 90° à une pictureBox
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    Private Declare Function SetDIBits Lib "gdi32" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
    Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
    Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
    Private Declare Function GetForegroundWindow Lib "user32" () As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
    Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
    Private Type BITMAP
        bmType As Long
        bmWidth As Long
        bmHeight As Long
        bmWidthBytes As Long
        bmPlanes As Integer
        bmBitsPixel As Integer
        bmBits As Long
    End Type
    Private Type BITMAPINFOHEADER
        biSize As Long
        biWidth As Long
        biHeight As Long
        biPlanes As Integer
        biBitCount As Integer
        biCompression As Long
        biSizeImage As Long
        biXPelsPerMeter As Long
        biYPelsPerMeter As Long
        biClrUsed As Long
        biClrImportant As Long
    End Type
    Private Type RGBQUAD
        rgbBlue As Byte
        rgbGreen As Byte
        rgbRed As Byte
        rgbReserved As Byte
    End Type
    Private Type BITMAPINFO
        bmiHeader As BITMAPINFOHEADER
        bmiColors As RGBQUAD
    End Type
    Dim BMPINFO As BITMAPINFO
    Dim BMPINFOH As BITMAPINFOHEADER
    Dim Buffer() As RGBQUAD
     
    Private Sub CmdPivot_Click()
      Dim Buffer() As RGBQUAD
      Dim Result() As RGBQUAD
      Dim PicInfo As BITMAP
      Dim Width As Long
      Dim Height As Long
      Dim hdc As Long
     
      hdc = GetDC(GetForegroundWindow())
      GetObject Me.Pic1.Image, Len(PicInfo), PicInfo
      Width = PicInfo.bmWidth
      Height = PicInfo.bmHeight
     
      ReDim Buffer(0 To Width - 1, 0 To Height - 1)
      With BMPINFOH
        .biBitCount = 32
        .biHeight = Height
        .biWidth = Width
        .biPlanes = 1
        .biSize = Len(BMPINFOH)
      End With
      BMPINFO.bmiHeader = BMPINFOH
      GetDIBits hdc, Me.Pic1.Image.Handle, 0, Height, Buffer(0, 0), BMPINFO, 0
     
      Dim X As Long
      Dim Y As Long
      Dim XX As Long
      Dim YY As Long
      X = UBound(Buffer, 1)
      Y = UBound(Buffer, 2)
      ReDim Result(0 To Y, 0 To X)
      For XX = 0 To X
        For YY = 0 To Y
          Result(Y - YY, XX) = Buffer(XX, YY)
        Next YY
      Next XX
      Dim l As Single
      l = Me.Pic1.Width
      Me.Pic1.Width = Pic1.Height
      Me.Pic1.Height = l
      With BMPINFOH
        .biBitCount = 32
        .biHeight = Width
        .biWidth = Height
        .biPlanes = 1
        .biSize = Len(BMPINFOH)
      End With
      BMPINFO.bmiHeader = BMPINFOH
     
      Set Me.Pic1.Picture = Nothing
      SetDIBits hdc, Me.Pic1.Image.Handle, 0, Width, Result(0, 0), BMPINFO, 0
     
    End Sub
    Private Function Mini(V1 As Integer, V2 As Integer) As Byte
      If V1 > V2 Then Mini = V2 Else Mini = V1
    End Function
    Private Function Maxi(V1 As Integer, V2 As Integer) As Byte
      If V1 > V2 Then Maxi = V1 Else Maxi = V2
    End Function
    Interesant non surtout qu'en le programme comporte 0 commentaire , c'est sur que comme ca ca va m'aider pour la compréhension du programme , car aucune utilisté de faire copier coller

  12. #12
    Membre émérite
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Par défaut
    Le code que tu as donné fonctionne-t-il?

    Tu souhaites le modifier pour faire des rotations différents de 90°? Tu souhaites avoir des explications sur certaines parties du code? Sa logique d'enchainement?

    As-tu regardé l'aide relatives aux API déclarées?

  13. #13
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    oui j'ai fais des recherches avant de poster des Messages , mais yen as qui n'ont pas l'air de le comprendre , et qui ne prenne pas la peine de lire ce que j'ecris , pourtant c'est ecrit assez gros dans l'intitulé du sujet .... Oui catbull le code que j'ai mis fonctionne , mais dans la seul mesure ou on utilise des PICTUREBOX , et moi mon soucis c'est que j'utilise des IMAGE , il serai plus simple de changer mes IMAGE par des PICTUREBOX mais mon CDC ne me le permet pas , donc comment puis je opérer pour rendre le code opérationnel avec une IMAGE sachant que des propriété tels que SCALEWIDHT .... n'existe pas avec une IMAGE

  14. #14
    Membre émérite
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Par défaut
    1. Lorsque tu parles d'image, tu parles du contrôle image? Il faut être précis, le terme image prete à confusion.

    2. Le code que tu as fournis travaille sur un fichier image de type BMP. Donc indépendant du controle utilisé excépté la récupération de la dite image (Me.Pic1.Image) et de la hauteur, largeur (Height, Width)

    3. Tu parles de SCALEWIDHT, mais dans le code que tu nous as fournis n'utilise pas cette propriété.

  15. #15
    Membre émérite
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Par défaut
    Tu peux par contre ouvrir l'image ds un picturebox et ensuite la tourner si code plus facile et la réenregistrer ailleur...

    C'est tres possible

  16. #16
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    Et bien , tu sais dans la barre d'outils , on peut choisir entre PictureBox ou Image , et dés le départ , j'ai utilisé un groupe indexé d'Image , car je dois créer un control ActiveX qui sera utiliser dans un superviseur , pour visualiser l'etat d'une vanne selon la couleur de l'Image vanne . Je dispose donc d'environ 10 images Vanne differentes , jusque la aucun soucis , mais mon patron m'a demander de créer une page de propriété sur laquelle l'utilisateur pe choisir la disposition de l'image , vertical ou horizontal , donc avant de me pencher sur le soucis de la création de la page de propriété , JMFMARQUES ma dit de me penché sur le code permettant de faire pivoter l'image .... et mes soucis ont commencé

  17. #17
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Bon, Lucas !
    Vertical ou horizontal, seulement, c'est mille fois plus simpe que de "faire pivoter" (donc quel que soit l'angle).
    Je veux bien venir à ta rescousse sur ce coup-ci, mais te laisserai faire en ce qui concerne les propriétés à construire pour ton activex (car j'estime personnellement qu'on s'abstient de viser haut lorsque l'on ne sait pas voler bas).
    Patientes donc un peu et je reviens avec tes positions horizontales et verticales ....

  18. #18
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    ok , c'est cool , mais je n'ai ( personnellement jamais pretendu savoir voler haut ) c'est plutot mon maitre de stage qui le pretend , il est bien gentil , mais n'étant pas la depuis 2 semaines ( il est en vacances ) je l'ai vu seulement 1 jour , il ma donné mon sujet et op op , il est parti , et toujours pas revenu , donc , je suis bien obligé de jouer cartes sur table si je veux lui presenter quelque chose à son retour
    Mon patron sais faire ce qu'il ma demander , mais comme il me l'a fait savoir , l'entreprise n'a pas d'argent à mettre dans le domaine recherche et developpement , donc il donne ca au stagiaire , donc pour me permettre de prendre mon envole , je prend appuis dans les forums ....

  19. #19
    Membre éclairé Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Par défaut
    ca serai pas super plus pratique de prendre paint, de rotationer les images de 90degres, de les enregistrer avec le meme nom presaue ( genre VanneFemeeNumero8_vert.png ou VanneFemeeNumero8_hori.png)
    et quand tu coche une case dans ta config ou je ne sais ou, tu dis;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim var as string
    If JveuxImageVerticale = true Then
    var = vert
    Else
    var = hori
    End If
    image = chemin & "VanneFemeeNumero8_" & var & ".png"
    ca convient pas comme solution ?

    Edit:
    sinon, je partage et comprend tout a fait le sentiment d'etre le pauvre stagiaire exploite auquel on demande tout et n'importe quoi

    Stgiaire POWAAAA :p

  20. #20
    Membre éclairé Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Par défaut
    je craint que ca alourdise le programme d'avoir 10 images verticals visible=false et 9 horizontal visible = false , car on voit toujours qu'une seule image

    ..............

    donc j'attend la reponse de JMFMARQUES

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Toutes versions] Comment faire pivoter une image de 10° par exemple
    Par whitespirit dans le forum Word
    Réponses: 2
    Dernier message: 06/06/2011, 13h39
  2. [VB.NET]Comment faire Pivoter une image
    Par vijeo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/09/2006, 09h38
  3. [VB6] COmment Faire Clignoter une image ?
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/04/2006, 12h29
  4. Comment faire défiler une image dans un DBImage
    Par kolac dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/04/2006, 14h45
  5. Faire pivoter une image dans TImage
    Par Bourak dans le forum Langage
    Réponses: 4
    Dernier message: 17/03/2006, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo