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

wxWidgets Discussion :

Redimensionner une image


Sujet :

wxWidgets

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 15
    Points
    15
    Par défaut Redimensionner une image
    Bonjour,

    comme le titre l'indique, j'ai un problème lors de l'affichage avec la taille des images.
    Dans ma fenêtre, j'ai une zone qui affiche les images, cette zone a une taille fixe (640x480 pour être précis) mais les images peuvent être plus grandes.
    Et dans ce cas-là, seule une partie de l'image est affichée. Ce que je souhaite faire, c'est donc afficher l'image en entier dans la zone prévue.

    voilà comment est construite la zone d'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //wxStaticBitmap *stBmp;
     
    wxStaticBox *GraphBox = new wxStaticBox(this, -1, "", wxDefaultPosition, wxSize(640,480));
    wxStaticBoxSizer *SizerGraph = new wxStaticBoxSizer(GraphBox,wxVERTICAL|wxHORIZONTAL);
    stBmp = new wxStaticBitmap(this, -1, *bitm, wxDefaultPosition, wxSize(640,480), wxDEFAULT, "");
    J'ai essayé un peu tout et n'importe quoi (et surtout n'importe comment) mais je n'arrive pas à redimmensionner les images :
    - j'ai essayé avec les méthodes Fit et FitInside mais aucun résultat visible n'apparait (peut être que j'ultilise mal les méthodes...).
    - j'ai essayé de récupérer dynamiquement les dimensions de la zone image mais le problème c'est que je récupère les informations de la fenêtre principale (normal puisque le parent est this, c'est-à-dire la fenetre elle-meme).

    Si quelqu'un avait des idées, je l'en remercie d'avance.

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Ce qu'il faut c'est récupérer la taille de ton image puis utiliser la méthode Scale pour la redimentionner.

    Tiré du wiki wxwidgets :

    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
    dim Path_img = "immagine.bmp" '     ******* CHANGE NAME HERE!!! ******
     
     frame = new wxFrame( Null, -1, "Using wxImage",wxPoint(20,20),wxSize(320,200+25))
     panel = new wxPanel( frame, -1 ,wxPoint(0,200),wxSize(320,200))
     panel2= new wxPanel( frame,-1,wxPoint(-1,-1),wxSize(0,0))
     
     bmp  = new wxEmptyImage(0,0)  ' Create an empty Image. Size does NOT matter...
     img = new wxEmptyBitmap(0,0) 'Create empty bitmap
     
     bmp2DC = wxMemoryDC()   ' Allocate memory: this space will be used to store the bitmap.
     
     if(bmp.LoadFile(Path_img, wxBITMAP_TYPE_BMP)) then   'Load image
         wxMessageBox("image loaded correctly")
     end if
     
     'resize l'immagine
         wxMessageBox("Original size(X,Y) = (" & bmp.GetWidth() & "," & bmp.GetHeight() & ")")    
         bmp = bmp.Scale(60,60) ' Change image size
         wxMessageBox("Size(X,Y) after resize = (" & bmp.GetWidth() & "," & bmp.GetHeight() & ")")
     
         bmp2 = bmp.ConvertToBitmap()    'convert image into bmp
         wxMessageBox("convert image into bitmap")
     
     
     
     Sub onPaint( event )
         dc = wxPaintDC( frame )
         dc.BeginDrawing()
             dc.DrawBitmap(bmp2,1,1,FALSE) 'draw converted image
         dc.EndDrawing()
     End Sub
     
     Connect( frame, -1, wxEVT_PAINT, "onPaint" )
     
     frame.Show(True)
    Ce qui compte, c'est ça :


  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    yeah merci PRomu@ld ça marche nickel avec la méthode Scale

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Redimensionner une image dans un PictureBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/04/2007, 18h24
  2. [32 bits] Redimensionner une image JPEG/GIF/PNG...
    Par CR_Gio dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 04/10/2005, 00h57
  3. Redimensionner une image...
    Par RhaZieL dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 22/07/2005, 09h30
  4. [VB.NET] Redimensionner une image proportionnelement
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/10/2004, 12h10
  5. [MX2004] redimensionner une image lors du chargement
    Par ouinouin dans le forum Flash
    Réponses: 8
    Dernier message: 18/02/2004, 18h32

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