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 :

Affichage d'une image et garder les proportions


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut Affichage d'une image et garder les proportions
    Bonjour,

    J'affiche une image dans un contrôle Image que j'agrandi au format de la Form.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Form6.pctViewer.Stretch = True
    Form6.pctViewer = LoadPicture(Path)
    Par contre, l'image est adaptée à la taille du contrôle, ce qui fait que selon la taille d'origine je perds les proportions.
    Y-a-t-il une astuce pour afficher l'image et garder les proportions?

    Merci
    Xavier

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 181
    Points
    17 181
    Par défaut
    Salut
    ??
    Pourquoi pas un PictureBox avec les propretés
    - .AutoSize = True
    - .AutoRedraw = True
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Mais avec AutoSize, je ne pourrais pas avoir l'image en plein écran, si?
    Xavier

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 181
    Points
    17 181
    Par défaut
    Exemple: sur un Form, un CommdButton, un PictureBox (PictCharger) et un CommonDialog1, mise aux dimensions maximum et centrage
    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
    Option Explicit
     
    Private Sub Form_Load()
    Me.AutoRedraw = True: Me.ScaleMode = vbPixels: Me.Move 0, 0, Screen.Width, Screen.Height
    PictCharger.AutoSize = True: PictCharger.ScaleMode = vbPixels
    PictCharger.AutoRedraw = True: PictCharger.Visible = False
    Command1.Move 15, 15, 73, 25: Command1.Caption = "Go"
    Command1.Move 15, 15, 73, 25: Command1.Caption = "Go"
    End Sub
    '--------------------------------------------------------------------------------------------
    Private Sub Command1_Click()
    Dim EchelAff As Single
    Dim H As Integer, L As Integer
    Dim DecalLeft As Integer, DecalTop As Integer
     
    CommonDialog1.ShowOpen
    If CommonDialog1.FileName = "" Then Exit Sub
    PictCharger.Picture = LoadPicture(CommonDialog1.FileName)
     
    'une nouvelle image a ete chargée
    If PictCharger.Width > Me.ScaleWidth Or PictCharger.Height > Me.ScaleHeight Then
        'l'image a au moins une dimension PictChargerla résolution du Form
        If PictCharger.Width - Me.ScaleWidth > PictCharger.Height - Me.ScaleHeight Then
            EchelAff = PictCharger.Height / Me.ScaleHeight 'la plus grosse différence est en hauteur
            Else
            EchelAff = PictCharger.Width / Me.ScaleWidth 'la plus grosse différence est en largeur
        End If
        Else
        EchelAff = 1 'l'image n'a aucune dimension dépassant la résolution du Form
     End If
     L = PictCharger.Width / EchelAff
     H = PictCharger.Height / EchelAff
     Me.Picture = LoadPicture("") 'effacement
     DecalLeft = CInt((Me.ScaleWidth - L) / 2): DecalTop = CInt((Me.ScaleHeight - H) / 2)
     Me.PaintPicture PictCharger.Image, DecalLeft, DecalTop, L, H, _
           0, 0, PictCharger.Width, PictCharger.Height, vbSrcCopy
    End Sub
    Le dessin est fait sur le fond du Form, PictCharger n'est là que comme buffer et si le fichier image en cour de chargement et corrompu,
    l'image de la dernière réussite n'est pas perdu
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Merci beaucoup. C'est sympa et ça fonctionne.

    A bientôt,

    Xav
    Xavier

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

Discussions similaires

  1. Affichage d'une image différemment selon les navigateurs
    Par CaNiBaLe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2012, 14h55
  2. Réponses: 2
    Dernier message: 29/09/2010, 14h18
  3. affichage d'une image avec les servlets
    Par hassanovich dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 03/11/2006, 10h35
  4. Garder les proportions d'une fenêtre ???
    Par Heavy_Feather dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/01/2006, 12h29

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