bilaloch
Messages postés
556
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
31 octobre 2019
1
26 déc. 2007 à 22:27
Le code que je te donne permet de redimensionner une image en une autre de 100 * 100 pixels (on centre l'image, sans la déformer). Je précise que je ne peux donner qu'un bout du code ici, pas assez de place pour le reste, donc il y a quelques appels de fonction assez incompréhensibles sans le reste du code, mais c'est le plus important. Voilà :
Public Function Redimensionner(FichierSource As String, FichierDestination As String, frmReDim As Form, PicSource As PictureBox, PicDestination As PictureBox, Taille As Integer)
' ---Change le pointeur de la souris---
Screen.MousePointer = vbHourglass
' ---Déclaration des variables---
Dim Ret As Long
Dim Hauteur As Long
Dim Largeur As Long
Dim Recupere As Long
Dim cDib As New cDIBSection
Dim Bits() As Byte
PicSource.AutoSize = True
PicSource.AutoRedraw = True
PicDestination.AutoRedraw = True
PicSource.Appearance = 0
PicDestination.Appearance = 0
PicSource.BorderStyle = 0
PicDestination.BorderStyle = 0
' ---Initialisation---
PicSource.ScaleMode = vbPixels
PicDestination.ScaleMode = vbPixels
frmReDim.ScaleMode = vbPixels
PicSource.Picture = LoadPicture(FichierSource)
DC = GetPixelData(PicSource.Image, Bits())
Mosaique Bits(), 0, 0, PicSource.ScaleWidth, PicSource.ScaleHeight, 5, 5
SetPixelData DC, PicSource.Image, Bits()
PicDestination.Height = Taille
PicDestination.width = Taille
If PicSource.width > PicSource.Height Then
Recupere = PicSource.Height
Else
Recupere = PicSource.width
End If
PicDestination.PaintPicture PicSource, 0, 0, PicDestination.ScaleWidth, PicDestination.ScaleHeight, (PicSource.width / 2) - (Recupere / 2), (PicSource.Height / 2) - (Recupere / 2), Recupere, Recupere
PicDestination.Picture = PicDestination.Image
' ---Remet le pointeur de la souris par défaut---
cDib.CreateFromPicture PicDestination.Picture
Screen.MousePointer = vbDefault
SaveJPG cDib, FichierDestination, 100
End Function
J'espère que cela t'a un peu aidé pour comprendre mon problème. Si tu veux le code intégral, je pourrais te l'envoyer par mail.
Merci ^^
BILALoch