Rogner une image

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 955 fois - Téléchargée 26 fois

Contenu du snippet

Cette fonction sert à rogner une image.

Placer un PictureBox sur votre formulaire (PictureBox1).
Dans la propriété image de votre PictureBox1, sélectionner une image.

Dans l'évennement FormLoad de votre formulaire, appeler la fonction RognImage comme suit:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'exemple:
PictureBox1.Image= RognImage(PictureBox1.Image, 0, 11, 22, 22)

End Sub

Source / Exemple :


Private Function RognImage(ByVal ImaSource As Bitmap, ByVal xPixelDep As Int32, ByVal yPixelDep As Int32, ByVal xPixelTotal As Int32, ByVal yPixelTotal As Int32) As Bitmap

        'ByVal ImaSource As Bitmap est l'objet image source. C'est l'image source de départ qui doit être rogner.
        'ByVal xPixelDep As Int32 et ByVal yPixelDep As Int32 indique les coordonnées x et y du pixel de départ à
        'partir duquel on doit rogner.
        'ByVal xPixelTotal As Int32 indique le nombre de pixel à conserver sur l'axe de coordonnée x
        '(ou le Widht que devra avoir la nouvel image), ByVal yPixelTotal As Int32 indique le nombre
        'de pixel à conserver sur l'axe de coordonnée y (ou le Height que devra avoir la nouvel image)
        '
        'Exemple 1, supposons que votre PictureBox1 contient une image avec un width de 200 pixels et un height
        'de 100 pixels et que vous souhaiter rogner et garder au final que la moitiée supérieure de votre image.
        'Vous appelerez la fonction RognImage comme suit:
        '
        'PictureBox1.Image= RognImage(PictureBox1.Image, 0, 0, 200, 50)

        'Exemple 2, supposons que votre PictureBox1 contient une image avec un width de 350 pixels et un height
        'de 400 pixels et que vous souhaiter rogner et garder au final que la moitiée inférieure de votre image.
        'Vous appelerez la fonction RognImage comme suit:
        '
        'PictureBox1.Image= RognImage(PictureBox1.Image, 0, 200, 350, 200)

        'ATTENTION: Pour le rendu final de votre control PictureBox, souvenez vous que la propriété SizeMode
        'influence la manière dont le controle et son contenu image est dessiné. Garder à l'esprit que le rognage 
        's effectue sur l'objet image contenu dans le PictureBox et non sur le contrôle PictureBox lui même.
        '
        'Vous pouvez appliquer la fonction à tout objet image et pas seulement au contrôle PictureBox.

        Dim nouvImage As New Bitmap(xPixelTotal, yPixelTotal)
        Dim graph As Graphics = Graphics.FromImage(nouvImage)
        Dim rect As New Rectangle(0, 0, xPixelTotal, yPixelTotal)
        graph.DrawImage(ImaSource, rect, xPixelDep, yPixelDep, xPixelTotal, yPixelTotal, GraphicsUnit.Pixel)
        Return nouvImage

    End Function

A voir également

Ajouter un commentaire Commentaires
Messages postés
226
Date d'inscription
mardi 17 octobre 2000
Statut
Membre
Dernière intervention
1 décembre 2010

Salut, il y a un problème avec cette source.

Chez moi, il créer une bande blanche de quelques pixel sur les coté droit & bas de mon image rogner.

Du coup si je souhaite étiré mon image sa foire sur le bas et le coté droit.

Une idée ?
Messages postés
13
Date d'inscription
lundi 7 juillet 2003
Statut
Membre
Dernière intervention
8 mai 2009

Petite précision :
Pour garder la résolution de l'image originale, il faut rajouter
nouvImage.SetResolution(ImaSource.HorizontalResolution, ImaSource.VerticalResolution)
après :
Dim nouvImage As New Bitmap(xPixelTotal, yPixelTotal)

sinon l'image obtenue a la résolution de l'écran
Messages postés
13
Date d'inscription
lundi 7 juillet 2003
Statut
Membre
Dernière intervention
8 mai 2009

Merci pour ce code et les explications très claires
Messages postés
4
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
12 mars 2007

Super, code très simple et c'est exactement ce que je recherchais. Merci.
Messages postés
63
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
16 novembre 2007

Oui c'est bien mais en plus tu aurais pu faire une fonction qui récupère graphiquement le point de départ du rognage et le point de relachement de la souris comme ça tu aurais fait la fonction comme dans photoshop.

sinon l'idée est bonne

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.