- 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
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