Visualisateur d'images sans api

Contenu du snippet

Copiez ce code dans la form principale et lancez.
Vous pouvez améliorer ce code, c'est juste pour donner des idées ou pour vous simplifier la vie.

Source / Exemple :


Private Sub cmdExecute_Click()
'Dim XPos, YPos As Variant
'Dim Table(4215, 4335) As Variant
    'For XPos = 0 To picMain.Width
        'For YPos = 0 To picMain.Height
            'picMain.PSet (XPos, YPos), RGB(10, 10, 10)
        'Next
    'Next
End Sub
Private Sub cmdExit_Click()
    Unload Me
End Sub
Private Sub cmdParam_Click()
    Select Case cboFiltre
        Case "Eroder l'image"
            frmParam.Visible = True
            frmEroder.Show
            'trouver une routine pour l'affichage
            'de la bonne feuille dans la MDI
            
        Case "Tracer les contours"
            frmParam.Visible = True
            frmParam.Caption = frmParam.Caption + " (Tracer les contours)"
        Case "Eclaircir l'image"
            MsgBox ("Vous avez choisi le 2")
        Case "Foncer l'image"
            MsgBox ("Vous avez choisi le 3")
        Case "Affiner l'image"
            MsgBox ("Vous avez choisi le 4")
        Case "Déceler les formes"
            MsgBox ("Vous avez choisi le 5")
    End Select
End Sub
Private Sub cmdSave_Click()
    cdTreatment.ShowSave
    
End Sub
Private Sub cmdTreatment_Click()

    picMain = LoadPicture()
    cdTreatment.Filter = "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|Images (*.gif)|*.gif|Images (*.bmp)|*.bmp"
    ' Spécifie le filtre par défaut.
    cdTreatment.FilterIndex = 1
    cdTreatment.ShowOpen
    
    'déclaration des variables de dimensions
    Dim width1, height1, width2, height2 As Integer
    Dim ratio As Integer
    'déclaration des variables de positions
    Dim X, Y As Integer
    'déclaration d'une variable conteneur de la photo en cours
    Dim progress As Image
    
    
    
    width1 = LoadPicture(cdTreatment.filename).Width
    height1 = LoadPicture(cdTreatment.filename).Height
    width2 = picMain.Width
    height2 = picMain.Height
    If width1 > width2 Then
        If height1 > height2 Then
            If width1 > height1 Then
                ratio = width1 / width2
                width1 = width2
                height1 = height1 / ratio
            ElseIf height1 > width1 Then
                ratio = height1 / height2
                height1 = height2
                width1 = width1 / ratio
            End If
        End If
    End If
    
    X = ((picMain.Width / 2) - (width1 / 2))
    Y = ((picMain.Height / 2) - (height1 / 2))
    Clipboard.Clear
    Clipboard.SetData LoadPicture(cdTreatment.filename)
    picMain.PaintPicture Clipboard.GetData, X, Y, width1, height1
 
End Sub

Private Sub Form_Load()
    'Création de la liste à choix des filtres (fixes)
    cboFiltre.AddItem "Eroder l'image", 0
    cboFiltre.AddItem "Tracer les contours", 1
    cboFiltre.AddItem "Eclaircir l'image", 2
    cboFiltre.AddItem "Foncer l'image", 3
    cboFiltre.AddItem "Affiner l'image", 4
    cboFiltre.AddItem "Déceler les formes", 5
    'Fin de la création de la liste à choix des filtres
    
    'Cache les contrôles encore non exploités
    cboFiltre.Visible = False
    cmdExecute.Visible = False
    cmdParam.Visible = False
    cmdSave.Visible = False
    cmdZoom.Visible = False
    
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Clipboard.Clear
End Sub

Private Sub tmrGauge_Timer()
    
    If shpGauge.Top >= 0 Then
        shpGauge.Top = -5295
    End If
    
End Sub

Private Sub tmrRefresh_Timer()
    
    picGauge.Refresh
End Sub

Conclusion :


Utilise le presse-papier et recalibre les dimensions pour avoir l'intégralité dans l'espace de visualisation. Rien de bien sorcier.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.