Modification de la taille d'un objet de type bitmap. besoin d'aide pour finir

Soyez le premier à donner votre avis sur cette source.

Vue 6 669 fois - Téléchargée 212 fois


Description

J'ai crée une classe pour travailler plus simplement sur les images. En exemple il y a un méthode qui rend les bitmap carré, j'ai aussi réalisé une méthode pour la rotation sur elle même ou encore décalage a droite ou a gauche (viendra dans le code plus tard)
Le problème c'est que je n'arrive pas a modifier la taille de mon objet bitmap après qu'elle soit construite.

Private BM As Bitmap
BM = New Bitmap(Source_Picture.Width, Source_Picture.Height)

Apres cela, comment modifier BM.width & BM.height ?

Source / Exemple :


Public Class Graphic_Env
    Private Info As String '= "Written by Anthony Faucogney"
    Private value As Integer = 0
    Private Original_Image As Image
    Private Width, Height, Pixel_Number, Center_X, Center_Y
    Private Shared Nb As Integer = 0
    Private From_Picture, To_Picture As Image
    Private G As Graphics
    Private BM As Bitmap

    Sub New(ByVal Source_Picture As Image)
        BM = New Bitmap(Source_Picture.Width, Source_Picture.Height)

        From_Picture = Source_Picture
        G = Graphics.FromImage(BM)

        Width = From_Picture.Width
        Center_X = Width / 2 '

        Height = From_Picture.Height
        Center_Y = Height / 2

        Pixel_Number = Width * Height
    End Sub

    Protected Overrides Sub Finalize()
        Nb -= 1
    End Sub

    Sub Squarize(ByVal _Color As Color)
        ' define background color
        G.Clear(_Color)

        Dim Rect As Rectangle

        ' Print Image to define a square
        Select Case Width
            Case Is > Height
                Rect = New Rectangle(0, ((Width - Height) / 2), Width, Height)
                G.DrawImage(From_Picture, Rect)
            Case Is < Height
                Rect = New Rectangle(((Height - Width) / 2), 0, Width, Height)
                G.DrawImage(From_Picture, Rect)
            Case Else
                Rect = New Rectangle(0, 0, Width, Height)
                G.DrawImage(From_Picture, Rect)
        End Select
    End Sub

    Sub Print()
        ' Draw work in destination image
        To_Picture = BM
    End Sub

    Function Get_Image() As Image
        ' Return the Bitmap image
        Return BM
    End Function

End Class

Conclusion :


Je le remais a jour dès que vous, collegues, me donnez quelques indications.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_PHILIPPO
Messages postés
6
Date d'inscription
mardi 24 juin 2003
Statut
Membre
Dernière intervention
1 décembre 2009
-
salut por redimensionner ton image tu peu utiliser
bm=bm.GetThumbnailImage(nouvellelargeur,nouvellehauteur,nothing,nothing)

@++
TMONOD
Messages postés
256
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
6 novembre 2009
1 -
Salut,
Bon j'ai bien regardé ton code, j'ai bidouillé un peu.
Tu ne peux pas redimentionner le même bitmap mais tu peu en créer un autre dans lequel tu copie la partie que tu veux garder et l'affecter dans ta classe à la place de l'ancien.(ni vu ni connu).

POur ca, il faut que tu transformes tes deux membre Width et Height en property (en plus tu ne leur avait affecté aucun type !!)
et dans la partie SET(nouvellelargeur as integer) tu fait le boulot.

Je te laisse chercher pour la copie. Si tu ne trouve pas : ecris moi !!!
benji2000
Messages postés
78
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
25 novembre 2016
-
Peus-tu mettre le ZIP?

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.