C'est simplement un code très simple pour simplement déformer de façon simple une simple image BMP. La simple utilisation du simple opérateur SIN permet d'obtenir simplement une image qui fait des simples vagues.
J'avais simplement rien à faire et j'étais tout simplement trop lâche pour brancher mon 2ème PC.
Source / Exemple :
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Public Function DeformerEnSin(ImageSrc As PictureBox, ImageDest As PictureBox, Deforme_X As Boolean, Deforme_Y As Boolean _
, AmplitudeX As Long, AmplitudeY As Long, PeriodeX As Long, PeriodeY As Long)
Dim X As Long, Y As Long
Dim aX As Long, aY As Long
ImageDest.Cls
ImageDest.Width = ImageSrc.Width + IIf(Deforme_X, AmplitudeX * 2, 0)
ImageDest.Height = ImageSrc.Height + IIf(Deforme_Y, AmplitudeY * 2, 0)
For X = 0 To ImageSrc.ScaleWidth
For Y = 0 To ImageSrc.ScaleHeight
aX = IIf(Deforme_X, Sin(Y / PeriodeX) * AmplitudeX + AmplitudeX, 0)
aY = IIf(Deforme_Y, Sin(X / PeriodeY) * AmplitudeY + AmplitudeY, 0)
SetPixel ImageDest.hdc, X + aX, Y + aY, GetPixel(ImageSrc.hdc, X, Y)
Next Y
Next X
End Function
Conclusion :
C'est assez simple ?
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.