[vb.net]redimensionner une image

cs_Alexis35 Messages postés 44 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 2 mai 2011 - 8 nov. 2005 à 12:00
alicvb Messages postés 134 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 juin 2007 - 8 nov. 2005 à 21:43
Bonjour, voila j'ai une base de données en postgresql ou pour l'instant j'ai juste une table"image" avec un id et et une image (tableau de byte)
j'arrive a enregistrer et visualiser mes images en les redimensionnant par rapport a une picture box, mais ma question etait de savoir si il n'y avait pas un moyen de redimensionner directement mes images avant de les enregistrer dans ma base..
Wala j'espere que j'ai ete assez clair et d'avance merci

2 réponses

cs_Alexis35 Messages postés 44 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 2 mai 2011
8 nov. 2005 à 12:23
j'ai bien trouvé une solution pur redimensionner mes images avnt de les enregistrer dans ma base mais le probleme c'est quil me les enregistre en double ossi sur mon pc :
PictureBox1.Image = Nothing


        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            strImg = OpenFileDialog1.FileName
            img = Image.FromFile(strImg)



            Me.PictureBox3().SizeMode = PictureBoxSizeMode.AutoSize
            PictureBox3.Image = System.Drawing.Image.FromFile(strImg)
            W1 = Me.PictureBox3.Width
            H1 = Me.PictureBox3.Height


            W2 = 100
            H2 = 75
            
            Dim bm_source As New Bitmap(Me.PictureBox3.Image)


            Dim bm_dest As New Bitmap(W2, H2)


            Dim gr_dest As Graphics = Graphics.FromImage(bm_dest)


            gr_dest.DrawImage(bm_source, 0, 0, W2, H2)
          
            Me.PictureBox1.Left = 5
            Me.PictureBox1.Top = 5


            Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage


            Me.PictureBox1.Width = W2
            Me.PictureBox1.Height = H2
            Me.PictureBox1.Image = bm_dest
            strImg = strImg + "(1)"
            Me.PictureBox1.Image.Save(strImg, System.Drawing.Imaging.ImageFormat.Jpeg)


            tabImgByt = images.ConvertirImageByte(strImg)



        End If

vraiment personne n'aurait une idée pour éviter cela???
0
alicvb Messages postés 134 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 juin 2007 1
8 nov. 2005 à 21:43
si tu veux te passer des picturebbox, comme indiqué dans ton premier message, tu n'as qu'à faire :

(en admettant que FicImage soit le chemin de ton image)



Dim bm_source As New Bitmap(FicImage)

Dim bm_dest As New Bitmap(W2, H2)

Dim GR As Graphics = Graphics.FromImage(bm_dest)



'pour choisir le type d'interpolation :

GR.InterpolationMode = ...........



GR.DrawImage(bm_source, 0, 0, W2, H2)

GR.save



'pour enregistrer ta nouvelle bitmap dans un flux mémoire

dim Mstr as new io.memorystream

bm_dest.save(Mstr,System.Drawing.Imaging.ImageFormat.Jpeg)



et tu obtient ton tableau en appelant : Mstr.toarray...

N'oublie de fermer ton flux avec Mstr.close, une fois ton enregistrement terminé...



Est-ce que cette réponse te conviens ?



AlicVB
0
Rejoignez-nous