je ne suis pas chez moi, je testerais avec les lunettes debut de semaine prochaine.

En attendant ça sera lunette de soleil



@++
Code : Tout sélectionner
Largeur = 512
Hauteur = 512
Decalage = 20
Enumeration
#image_0
#image
#image_1
#window_0
#button_1
#button_2
#button_3
#button_4
EndEnumeration
UseJPEG2000ImageEncoder()
UseJPEGImageEncoder()
UsePNGImageEncoder()
UseJPEGImageDecoder()
UseTGAImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
Procedure ConvertirNormal(ImageID,Decalage) ; Milieu de plus pret
StartDrawing(ImageOutput(ImageID))
HauteurImage=ImageHeight(ImageID)
LargeurImage=ImageWidth(ImageID)
For y = 0 To HauteurImage-1
For x =0 To LargeurImage-1
If x<LargeurImage/2 ;Calcul du la première moitier de l'image
x2= Decalage-Round(x*(Decalage/(LargeurImage/2)), #PB_Round_Down)+x
EndIf
If x>LargeurImage/2 ;Calcul du la deuxieme moitier de l'image
x2= Decalage-Round((LargeurImage-x)*(Decalage/(LargeurImage/2)),#PB_Round_Down)+x
EndIf
If x2>LargeurImage-1
x2=LargeurImage-1
EndIf
Plot(x,y,RGB(Red(Point(x,y)),Green(Point(x2,y)),Blue(Point(x2,y))))
Next
Next
StopDrawing()
EndProcedure
Procedure ConvertirInverse(ImageID,Decalage) ;Milieux le plus loin
StartDrawing(ImageOutput(ImageID))
HauteurImage=ImageHeight(ImageID)
LargeurImage=ImageWidth(ImageID)
For y = 0 To HauteurImage-1
For x =0 To LargeurImage-1
If x<LargeurImage/2 ;Calcul du la première moitier de l'image
x2=x+Round(x*(Decalage/LargeurImage), #PB_Round_Down)
EndIf
If x>LargeurImage/2 ;Calcul du la deuxieme moitier de l'image
x2=x+Round((LargeurImage-x)*(Decalage/LargeurImage), #PB_Round_Down)
EndIf
Plot(x,y,RGB(Red(Point(x2,y)),Green(Point(x,y)),Blue(Point(x,y))))
Next
Next
StopDrawing()
EndProcedure
Procedure ConvertirIdem(ImageID,Decalage) ;Pareil partout
StartDrawing(ImageOutput(ImageID))
HauteurImage=ImageHeight(ImageID)
LargeurImage=ImageWidth(ImageID)
For y = 0 To HauteurImage-1
For x =0 To LargeurImage-1
If x>Decalage And LargeurImage>x+Decalage
x2=x+Decalage
Plot(x,y,RGB(Red(Point(x2,y)),Green(Point(x,y)),Blue(Point(x,y))))
EndIf
Next
Next
StopDrawing()
EndProcedure
CreateImage(#image_0,Largeur,Hauteur)
If OpenWindow(#Window_0, 0, 0, Largeur+100, Hauteur+30, "Créateur de terrain",#PB_Window_ScreenCentered| #PB_Window_TitleBar )
ImageGadget(#image_1, 80, 0, Largeur, Hauteur, ImageID(#image_0))
ButtonGadget(#button_1,0,10,80,20,"Normal")
ButtonGadget(#button_2,0,40,80,20,"Inverse")
ButtonGadget(#button_3,0,70,80,20,"IDEM")
ButtonGadget(#button_4,0,100,80,20,"Fermer")
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
If EventGadget()=#button_1
fichier$=OpenFileRequester("ouvrir image","c:\","*.*",0)
LoadImage(#image,fichier$)
ResizeImage(#image,Largeur,Hauteur)
SetGadgetState(#image_1,ImageID(#image))
ConvertirNormal(#image,Decalage)
SetGadgetState(#image_1,ImageID(#image))
EndIf
If EventGadget()=#button_2
fichier$=OpenFileRequester("ouvrir image","c:\","*.*",0)
LoadImage(#image,fichier$)
ResizeImage(#image,Largeur,Hauteur)
SetGadgetState(#image_1,ImageID(#image))
ConvertirInverse(#image,Decalage)
SetGadgetState(#image_1,ImageID(#image))
EndIf
If EventGadget()=#button_3
fichier$=OpenFileRequester("ouvrir image","c:\","*.*",0)
LoadImage(#image,fichier$)
ResizeImage(#image,Largeur,Hauteur)
SetGadgetState(#image_1,ImageID(#image))
ConvertirIdem(#image,Decalage)
SetGadgetState(#image_1,ImageID(#image))
EndIf
If EventGadget()=#button_4
End
EndIf
EndIf
ForEver
EndIf
Noos88 a écrit :Bonjour Dobro
Je trouve tres sympa ton idée.
J'ai essayer de créer un code pour avoir une image 3d avec une image 2d mais apres 3 essais ca ne donne toujour rien !
Comment fais tu?????
Content qu'il te serve, j'avais le même problème que toi pour les anniv'Dobro a écrit :excellent ton prg LDVM Reminder
il viens de me permettre d'eviter d'oublier un anniversaire important pour moi demain
que j'aurai a coup sur oublié !!![]()
j'avais pas entendu les samples![]()
.... et Merci pour vos retours ...