Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
27 septembre 2007 4 27 /09 /septembre /2007 14:58

Il est souvent préférable de mettre une image d'aperçu réduite dans une base de donnée, plutôt que l'image originale afin de ne pas alourdir la base de donnée.

Voici la méthode qui permet de retourner le "Thumbnail" d'une image :

Code :

Public Function ImageToByteArrayThumbnail(ByVal file As String, ByVal dWidth As Integer, ByVal dHeight As Integer) As Byte()
        Dim isoScalar As Decimal
        Dim dstWidth As Integer = dWidth
        Dim srcWidth As Integer
        Dim dstHeight As Integer = dHeight
        Dim srcHeight As Integer
        Dim newWidth As Integer
        Dim newHeight As Integer

        Dim myOriginalImage As Image = Image.FromFile(file)
        srcWidth = myOriginalImage.Size.Width
        srcHeight = myOriginalImage.Size.Height

        isoScalar = CDec(Math.Min((dstWidth / srcWidth), (dstHeight / srcHeight)))
        newWidth = CInt(isoScalar * srcWidth)
        newHeight = CInt(isoScalar * srcHeight)

        Dim myThumbImage As New Bitmap(myOriginalImage.GetThumbnailImage(newWidth, newHeight, New Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback), IntPtr.Zero))

        Dim myMemoryStream As New MemoryStream
        myThumbImage.Save(myMemoryStream, System.Drawing.Imaging.ImageFormat.Jpeg)

        Return myMemoryStream.ToArray
    End Function

Pour enregistrer cette "petite image" d'aperçu dans votre base de donnée, il suffit de faire :

Code :

row("thImage") = ImageToByteArrayThumbnail(file, 80, 80)

row("cheminImage") = file

La variable file contient, biensur, le chemin d'accès de l'image originale.

Partager cet article

Repost 0
Published by Cyril - dans VB.NET
commenter cet article

commentaires