
ça ne devrai plus planter ... le plantage intempestif arrivait pendant le dessin , si on allait au bords de l'ecran

ps: c'est vrais que cette histoire de decalage nous empeche de dessiner sur les bords de l'ecran !

Code : Tout sélectionner
;{ *** initialisations/Declarations**
UsePNGImageDecoder():UseJPEGImageDecoder()
UsePNGImageEncoder()
Enumeration ; Window
#window
EndEnumeration
Enumeration ; Gadget
#bouton_dessin
#bouton_efface
#bouton_charge_image
#Gadget_text
#bouton_Sauve
#Gadget_scroll
#Gadget_titre
#Gadget_auteur
#Gadget_list_style
#Gadget_text_style
#Gadget_list_codeur
#Gadget_text_codeur
EndEnumeration
Enumeration ; Sprite
#Pinceau
#Pinceau3D
EndEnumeration
Enumeration ; Images
#image_reference
#image_Sortie
EndEnumeration
Enumeration ; Fonte
#Font_Window_Text_titre
#Font_Window_Auteur
#Font_Window_Text_style
#Font_Window_Text_codeur
EndEnumeration
Global File_image$,Phase,Style
Global larg_fenetre=800
Global haut_fenetre=600
Global x_image_origine
Global y_image_origine
Global Flag_bouton_on
Global Brush_Alpha.a = 150
;-Declarations
;-** declaration style
Declare INIT(largeur,Hauteur, Array image_tab(2))
Declare Expressionnisme1(largeur,Hauteur,Array image_tab(2))
Declare croix(Largeur,Hauteur,Array image_tab(2))
Declare vermicelle(Largeur,Hauteur,Array image_tab(2))
Declare croix2(Largeur,Hauteur,Array image_tab(2))
Declare pointillism(largeur,Hauteur,Array image_tab(2))
Declare pointillism2(largeur,Hauteur,Array image_tab(2))
Declare aquarelle(largeur,Hauteur,Array image_tab(2))
Declare Pop_art(largeur,Hauteur,Array image_tab(2))
Declare Flocon(largeur,Hauteur,Array image_tab(2))
Declare cederavic(Largeur,Hauteur,Array image_tab(2))
Declare BrosseFloue(Largeur, HAuteur, Array image_tab(2))
Declare peint_impres(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
Declare peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2)) ; le Pinceau Croix
Declare peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2)) ; le Pinceau Croix
Declare peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2)) ; le pinceau Croix2
Declare peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
Declare peint_pointillism2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
Declare peint_aquarelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
Declare peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
Declare peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
Declare peint_cederavic(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2)) ; le pinceau Cederavic
Declare peint_BrosseFloue(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
Declare Write_preference()
Declare Read_preference()
Declare MyWindowCallback(WindowID, Message, wParam, lParam)
Global lpPoint.POINT ,xx_mouse,yy_mouse
;} ***********************************************************************
;{ open window
Read_preference()
If OpenWindow(#window,win_x,win_y,larg_fenetre,haut_fenetre,"", #PB_Window_SystemMenu |#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
; Déclarez les gadgets ici...
Global y_bouton=90 : Global x_bouton=10
ButtonGadget(#bouton_charge_image, x_bouton, y_bouton, 150, 30, "Load_image")
TextGadget(#Gadget_text_style, x_bouton, y_bouton+60, 150, 40, "Styles" )
SetGadgetFont(#Gadget_text_style, LoadFont(#Font_Window_Text_style, "Comic Sans MS", 10, 16))
ListViewGadget(#Gadget_list_style,x_bouton,y_bouton+90,180, 200 )
ButtonGadget(#bouton_dessin, x_bouton, y_bouton+420, 100, 30, "Draw")
ProgressBarGadget(#Gadget_scroll, x_bouton, y_bouton+450, 150,30, 0, 100)
ButtonGadget(#bouton_efface, x_bouton, y_bouton+510, 100, 30, "Clean")
ButtonGadget(#bouton_Sauve, x_bouton, y_bouton+540, 100, 30, "Save_image")
TextGadget(#Gadget_text, x_bouton, y_bouton+480, 150, 30, "" )
TextGadget(#Gadget_titre, x_bouton+500, 5, 300, 40, "Pure AutoPaint" )
SetGadgetFont(#Gadget_titre, LoadFont(#Font_Window_Text_titre, "Comic Sans MS", 20, 16))
TextGadget(#Gadget_text_codeur, x_bouton, 5, 150, 40, "Les Codeurs" )
SetGadgetFont(#Gadget_text_codeur, LoadFont(#Font_Window_Text_codeur, "Comic Sans MS", 10, 16))
ComboBoxGadget(#Gadget_list_codeur,x_bouton+150, 5, 300, 30)
AddGadgetItem(#Gadget_list_codeur, -1, "Dobro : Createur du truc")
AddGadgetItem(#Gadget_list_codeur, -1, "Graph100 : Optimiseur du truc")
AddGadgetItem(#Gadget_list_codeur, -1, "Cederavic : Styler pour le truc")
AddGadgetItem(#Gadget_list_codeur, -1, "Blendman : Style Flou")
SetGadgetState(#Gadget_list_codeur, 0)
EndIf
;}
;{ *************** initialisations Graphique *********************************
InitSprite()
OpenWindowedScreen(WindowID(#window),200,70,1024,768,1,20,20) ; l'ecran
SetWindowCallback(@MyWindowCallback())
; ***** Creation du pinceau ******
CreateSprite(#pinceau,8,8)
;-** list des styles
AddGadgetItem(#Gadget_list_style, 0, "Impressionnism 1")
AddGadgetItem(#Gadget_list_style, 1, "Croix ")
AddGadgetItem(#Gadget_list_style, 2, "Croix creuse ")
AddGadgetItem(#Gadget_list_style, 3, "Vermicelle ")
AddGadgetItem(#Gadget_list_style, 4, "pointillisme")
AddGadgetItem(#Gadget_list_style, 5, "Flocon")
AddGadgetItem(#Gadget_list_style, 6, "Aquarelle")
AddGadgetItem(#Gadget_list_style, 7, "Cederavic")
AddGadgetItem(#Gadget_list_style, 8, "Pop_art")
AddGadgetItem(#Gadget_list_style, -1, "Brosse Floue")
AddGadgetItem(#Gadget_list_style, -1, "Pointillisme Flou")
SetGadgetState(#Gadget_list_style, 0)
;}
Dim image_tab(1024, 768)
;{ ********************* boucle principale ***********************************²
;-Boucle principale
Repeat
;-Dessin a main levée
If Flag_bouton_on=1 ; recupe les coordonées de la souris si click
GetCursorPos_(lpPoint)
; Debug "X = " + Str(lpPoint\x)
; Debug "Y = " + Str(lpPoint\y)
;if lpPoint\x>200 and lpPoint\x<1024
;if lpPoint\y>70 and lpPoint\y<768
;Debug "X = " + Str(lpPoint\x)
;Debug "Y = " + Str(lpPoint\y)
xx_mouse=WindowMouseX(#window)-100
yy_mouse= WindowMouseY(#window)-50
If IsImage(#image_reference)
Largeur=1024
Hauteur=768
delay_affichage=20
Phase =Random(9)
Select Style
Case 0 ; Expressionisme1
nombre_de_coup_de_pinceau=10
Taille_x=Random(3,1):Taille_y=Random(5,1)
peint_impres(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, image_tab())
Case 1 ; Croix
nombre_de_coup_de_pinceau=10
Taille_x=Random(3,1):Taille_y=Random(3,1)
peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, image_tab()) ; le Pinceau Croix
Case 2 ;Croix2
nombre_de_coup_de_pinceau=10
Taille_x=Random(3,1):Taille_y=Random(3,1)
peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, image_tab()) ; le pinceau Croix2
Case 3 ; Vermicelle
phase=Random(7,1)
nombre_de_coup_de_pinceau=5
Taille_x=Random(1,1):Taille_y=Random(1,1)
peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, image_tab()) ; le Pinceau Croix
Case 4 ; Pointillisme
nombre_de_coup_de_pinceau=10
Taille_x=Random(2,1):Taille_y=Random(2,1)
peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, image_tab())
Case 5 ; Flocon
nombre_de_coup_de_pinceau=2
Taille_x=Random(10,1):Taille_y=Random(10,1)
peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, image_tab())
Case 6 ; Aquarelle
nombre_de_coup_de_pinceau=10
Taille_x=2:Taille_y=3
peint_aquarelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, image_tab())
Case 7 ; Cederavic
phase=Random(3,2)
nombre_de_coup_de_pinceau=50
Taille_x=Random(64,1):Taille_y=Random(20,1)
peint_cederavic(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, image_tab()) ; le pinceau Cederavic
Case 8 ; Pop_art
Taille_x=Random(5,1):Taille_y=Random(5,1)
nombre_de_coup_de_pinceau=2
phase=Random(7,1)
delay_affichage=20
peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, image_tab())
EndSelect
EndIf
; debug "tt: "+str( windowHeight(#window)-20)
;Endif
;Endif
EndIf
Event=WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #Gadget_list_style ; on a choisi un style ?
Style= GetGadgetState(#Gadget_list_style)
Case #bouton_Sauve
GrabSprite(#image_sortie, 0, 0, 1024, 768)
File_image_save$=SaveFileRequester("Load Picture",File_image$,"*.png",1)
If File_image_save$<>""
SaveSprite(#image_sortie,File_image_save$,#PB_ImagePlugin_PNG )
FreeSprite(#image_sortie)
If LoadImage(#image_sortie,File_image_save$)
ResizeImage(#image_sortie,x_image_origine,y_image_origine)
SaveImage(#image_sortie,File_image_save$,#PB_ImagePlugin_PNG)
FreeImage(#image_sortie)
EndIf
EndIf
Case #bouton_charge_image
File_image$=OpenFileRequester("Load Picture",File_image$,"*.jpg|*.jpg|*.png|*.png|*.bmp|*.bmp|*.*|*.*",0)
If File_image$<>""
If LoadImage(#image_reference,File_image$)
x_image_origine=ImageWidth(#image_reference)
y_image_origine=ImageHeight(#image_reference)
ResizeImage(#image_reference,1024,768)
If StartDrawing(ScreenOutput())
DrawImage(ImageID(#image_reference),0,0)
StopDrawing()
EndIf
FlipBuffers()
EndIf
; *****ne pas toucher servira dans tout les Styles ******
INIT(1024, 768,image_tab())
; **************************************************
Else
EndIf
Case #bouton_dessin
If IsImage(#image_reference)
;DisableDebugger
SetGadgetText(#Gadget_text, "Phase 1/9")
largeur=ImageWidth(#image_reference)
Hauteur=ImageHeight(#image_reference)
;CallDebugger
;- **selection_style
Select Style
Case 0 ; Expressionisme1
Expressionnisme1(largeur,Hauteur,image_tab())
Case 1 ; Croix
Croix(Largeur,Hauteur,image_tab())
Case 2 ;Croix2
Croix2(Largeur,Hauteur,image_tab())
Case 3 ; Vermicelle
vermicelle(Largeur,Hauteur,image_tab())
Case 4 ; Pointillisme
pointillism(Largeur,Hauteur,image_tab())
Case 5 ; Flocon
flocon(Largeur,Hauteur,image_tab())
Case 6 ; Pastel
aquarelle(Largeur,Hauteur,image_tab())
Case 7 ; Cederavic
cederavic(Largeur,Hauteur,image_tab())
Case 8 ; Pop_art
Pop_art(Largeur,Hauteur,image_tab())
Case 9 ; Brossefloue
BrosseFloue(Largeur,Hauteur,image_tab())
Case 10
pointillism2(Largeur,Hauteur,image_tab())
EndSelect
EndIf
SetGadgetState(#Gadget_scroll, 0)
Case #bouton_efface
ClearScreen(RGB(0,0,0))
If StartDrawing(ScreenOutput())
DrawImage(ImageID(#image_reference),0,0)
StopDrawing()
EndIf
FlipBuffers()
EndSelect
EndSelect
Until Event=#PB_Event_CloseWindow
;} *************** fin boucle principale ****************************************
Write_preference()
;{ **************************** Zone des Procedures **************************************
Procedure INIT(largeur,Hauteur, Array image_tab(2))
; By Graph100
If IsImage(#image_reference)
StartDrawing(ImageOutput(#image_reference))
For a = 0 To largeur -1
For b = 0 To Hauteur -1
image_tab(a, b)=Point(a,b) ; recup la Couleur
Next b
Next a
StopDrawing()
EndIf
EndProcedure
;{ Les Styles font appel aux pinceaux
Procedure Expressionnisme1(largeur,Hauteur,Array image_tab(2))
EndProcedure
Procedure croix(Largeur,Hauteur,Array image_tab(2))
;-le Style Croix
; by Dobro
Phase=1
nombre_de_coup_de_pinceau=400
Taille_x=100:Taille_y=100
SetGadgetText(#Gadget_text, "Phase 1/7")
peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20, image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 2/7")
Phase=2
nombre_de_coup_de_pinceau=600
Taille_x=50:Taille_y=50
Peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 40,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 3/7")
Phase=3
nombre_de_coup_de_pinceau=3000
Taille_x=20:Taille_y=20
Peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 4/7")
Phase=4
nombre_de_coup_de_pinceau=4000
Taille_x=10:Taille_y=10
Peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 5/7")
Phase=5
nombre_de_coup_de_pinceau=8000
Taille_x=4:Taille_y=4
Peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 6/7")
Phase=6
nombre_de_coup_de_pinceau=10000
Taille_x=2:Taille_y=2
Peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 7/7")
Phase=7
nombre_de_coup_de_pinceau=20000
Taille_x=1:Taille_y=1
Peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 800,image_tab())
Beep_(880,100)
EndProcedure
Procedure vermicelle(Largeur,Hauteur,Array image_tab(2))
;-le Style Vermicelle
; by Dobro
Phase=1
nombre_de_coup_de_pinceau=40
Taille_x=100:Taille_y=100
SetGadgetText(#Gadget_text, "Phase 1/7")
peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20, image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 2/7")
Phase=2
nombre_de_coup_de_pinceau=60
Taille_x=50:Taille_y=50
Peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 40,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 3/7")
Phase=3
nombre_de_coup_de_pinceau=300
Taille_x=4:Taille_y=4
Peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 4/7")
Phase=4
nombre_de_coup_de_pinceau=9000
Taille_x=3:Taille_y=3
Peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 5/7")
Phase=5
nombre_de_coup_de_pinceau=9800
Taille_x=1:Taille_y=1
Peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 6/7")
Phase=6
nombre_de_coup_de_pinceau=9800
Taille_x=1:Taille_y=1
Peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 7/7")
Phase=7
nombre_de_coup_de_pinceau=50000
Taille_x=1:Taille_y=1
Peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 800,image_tab())
Beep_(880,100)
EndProcedure
Procedure croix2(Largeur,Hauteur,Array image_tab(2))
;- Le Style Croix2
; by Dobro
Phase=1
nombre_de_coup_de_pinceau=400
Taille_x=100:Taille_y=100
SetGadgetText(#Gadget_text, "Phase 1/7")
peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20, image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 2/7")
Phase=2
nombre_de_coup_de_pinceau=600
Taille_x=50:Taille_y=50
Peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 40,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 3/7")
Phase=3
nombre_de_coup_de_pinceau=3000
Taille_x=20:Taille_y=20
Peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 4/7")
Phase=4
nombre_de_coup_de_pinceau=4000
Taille_x=10:Taille_y=10
Peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 5/7")
Phase=5
nombre_de_coup_de_pinceau=8000
Taille_x=4:Taille_y=4
Peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 6/7")
Phase=6
nombre_de_coup_de_pinceau=10000
Taille_x=2:Taille_y=2
Peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 7/7")
Phase=7
nombre_de_coup_de_pinceau=50000
Taille_x=1:Taille_y=1
Peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 800,image_tab())
Beep_(880,100)
EndProcedure
Procedure pointillism(largeur,Hauteur,Array image_tab(2))
;- le Style pointillisme
Phase=1
nombre_de_coup_de_pinceau=500
Taille_x=100:Taille_y=100
Peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 2/9")
Phase=2
nombre_de_coup_de_pinceau=1200
Taille_x=50:Taille_y=50
Peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 40,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 3/9")
Phase=3
nombre_de_coup_de_pinceau=2400
Taille_x=10:Taille_y=10
Peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 80,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 4/9")
Phase=4
nombre_de_coup_de_pinceau=3800
Taille_x=5:Taille_y=5
Peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 100,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 5/9")
Phase=5
nombre_de_coup_de_pinceau=5800
Taille_x=4:Taille_y=4
Peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 300,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 6/9")
Phase=6
nombre_de_coup_de_pinceau=6500
Taille_x=3:Taille_y=3
Peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 500,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 7/9")
Phase=7
nombre_de_coup_de_pinceau=7000
Taille_x=3:Taille_y=3
Peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 500,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 8/9")
Phase=8
nombre_de_coup_de_pinceau=9500
Taille_x=2:Taille_y=2
Peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 500,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 9/9")
Phase=9
nombre_de_coup_de_pinceau=100000
Taille_x=1:Taille_y=1
Peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 600,image_tab())
FlipBuffers()
Beep_(880,100)
;EnableDebugger
SetGadgetText(#Gadget_text, "Terminé !")
EndProcedure
Procedure pointillism2(largeur,Hauteur,Array image_tab(2))
; by dobro, modified by blendman
SetGadgetText(#Gadget_text, "Phase 1")
Phase=1
nombre_de_coup_de_pinceau=60000
Taille_x=7
Taille_y=7
Peint_pointillism2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 300,image_tab())
FlipBuffers()
SetGadgetText(#Gadget_text, "Terminé !")
EndProcedure
Procedure aquarelle(largeur,Hauteur,Array image_tab(2))
;-le Style Aquarelle
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 1")
Phase=1 ; ,e compte pas ici
nombre_de_coup_de_pinceau=200000
Taille_x=3:Taille_y=1 ; ne compte pas ici
Peint_aquarelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 600,image_tab())
FlipBuffers()
Beep_(880,100)
;EnableDebugger
SetGadgetText(#Gadget_text, "Terminé !")
EndProcedure
Procedure Pop_art(largeur,Hauteur,Array image_tab(2))
;-le Style pop_art
; by Dobro
Beep_(440,50)
Phase=1
nombre_de_coup_de_pinceau=500
Taille_x=100:Taille_y=100
Peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 2/9")
Phase=2
nombre_de_coup_de_pinceau=1200
Taille_x=50:Taille_y=50
Peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 40,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 3/9")
Phase=3
nombre_de_coup_de_pinceau=2400
Taille_x=10:Taille_y=10
Peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 80,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 4/9")
Phase=4
nombre_de_coup_de_pinceau=3800
Taille_x=5:Taille_y=5
Peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 100,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 5/9")
Phase=5
nombre_de_coup_de_pinceau=5800
Taille_x=4:Taille_y=4
Peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 300,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 6/9")
Phase=6
nombre_de_coup_de_pinceau=6500
Taille_x=3:Taille_y=3
Peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 500,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 7/9")
Phase=7
nombre_de_coup_de_pinceau=7000
Taille_x=3:Taille_y=3
Peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 500,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 8/9")
Phase=8
nombre_de_coup_de_pinceau=39500
Taille_x=2:Taille_y=2
Peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 500,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 9/9")
Phase=9
nombre_de_coup_de_pinceau=300000
Taille_x=1:Taille_y=1
Peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 600,image_tab())
FlipBuffers()
Beep_(880,100)
;EnableDebugger
SetGadgetText(#Gadget_text, "Terminé !")
EndProcedure
Procedure Flocon(largeur,Hauteur,Array image_tab(2))
;- le Style Flocon
; by Dobro
Phase=1
nombre_de_coup_de_pinceau=1500
Taille_x=100:Taille_y=100
Peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 20,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 2/9")
Phase=2
nombre_de_coup_de_pinceau=1200
Taille_x=50:Taille_y=50
Peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 40,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 3/9")
Phase=3
nombre_de_coup_de_pinceau=2400
Taille_x=30:Taille_y=30
Peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 80,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 4/9")
Phase=4
nombre_de_coup_de_pinceau=13800
Taille_x=20:Taille_y=20
Peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 100,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 5/9")
Phase=5
nombre_de_coup_de_pinceau=15800
Taille_x=10:Taille_y=10
Peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 300,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 6/9")
Phase=6
nombre_de_coup_de_pinceau=16500
Taille_x=8:Taille_y=8
Peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 500,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 7/9")
Phase=7
nombre_de_coup_de_pinceau=17000
Taille_x=5:Taille_y=5
Peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 500,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 8/9")
Phase=8
nombre_de_coup_de_pinceau=19500
Taille_x=3:Taille_y=3
Peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 500,image_tab())
; *********
Beep_(440,50)
SetGadgetText(#Gadget_text, "Phase 9/9")
Phase=9
nombre_de_coup_de_pinceau=300
Taille_x=2:Taille_y=2
Peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 600,image_tab())
FlipBuffers()
Beep_(880,100)
;EnableDebugger
SetGadgetText(#Gadget_text, "Terminé !")
EndProcedure
Procedure cederavic(Largeur,Hauteur,Array image_tab(2))
;-le Style Cederavic
; by Cederavic
Phase=1
nombre_de_coup_de_pinceau=200
SetGadgetText(#Gadget_text, "Phase 1/3")
peint_cederavic(largeur,Hauteur,nombre_de_coup_de_pinceau,128,32, 20, image_tab())
Beep_(440,50)
Phase=2
nombre_de_coup_de_pinceau=2000
SetGadgetText(#Gadget_text, "Phase 2/3")
peint_cederavic(largeur,Hauteur,nombre_de_coup_de_pinceau,24,128, 20, image_tab())
Beep_(440,50)
Phase=3
nombre_de_coup_de_pinceau=32000
SetGadgetText(#Gadget_text, "Phase 3/3")
peint_cederavic(largeur,Hauteur,nombre_de_coup_de_pinceau,4,64, 20, image_tab())
Beep_(880,100)
EndProcedure
Procedure BrosseFloue(Largeur, HAuteur, Array image_tab(2))
; By blendman
SetGadgetText(#Gadget_text, "Phase 1")
Phase=1 ;
nombre_de_coup_de_pinceau=50000
Taille_x = 8
Taille_y=1
Peint_BrosseFloue(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 600,image_tab())
FlipBuffers()
SetGadgetText(#Gadget_text, "Terminé !")
EndProcedure
;}
;{ les Pinceaux (appelé par les Styles)
Procedure peint_impres(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
;- le pinceau impress
; By Dobro
; le pinceau est une procedure qui Reçois plusieurs information :
; phase , indique quelle phase de dessin est demandé , cela permet de scinder en plusieur Etape un dessin , par exempe en changeant de forme de pinceau
; largeur,Hauteur de l'image qu'on dessine
; nombre_de_coup_de_pinceau , comme son nom l'indique , le nombre de coup de pinceau dans la Phase Actuelle
;Taille_x,Taille_y : la taille du pinceau ( de preference plus la phase est grande , plus le pinceau devrai etre petit
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
StartDrawing(ScreenOutput())
For i=1 To nombre_de_coup_de_pinceau
; ******** Entete Graph100**********************
If i%delay_affichage = 0
StopDrawing()
FlipBuffers()
StartDrawing(ScreenOutput())
EndIf
; ********************************************
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
Couleur_ref=image_tab(x_source,y_source) ; recup la Couleur de l'image d'origine (Mise en tableau image_tab())
De=Random(10) ; ici j'utilise un Dé , car de façon aléatoire mon pinceau va changer de forme
If De =1
DrawingMode(#PB_2DDrawing_Default )
Box(x_source,y_source,Taille_x,Taille_y,Couleur_ref) ;une boite
;EndIf
ElseIf De >=2 And De<4
DrawingMode(#PB_2DDrawing_Default )
Circle(x_source,y_source,Taille_x,Couleur_ref) ; un rond
; EndIf
ElseIf De >=4 And De<6
If Phase<>6
DrawingMode(#PB_2DDrawing_Outlined )
EndIf
Circle(x_source,y_source,Taille_x,Couleur_ref) ; un cercle
;EndIf
ElseIf De >=6 And De<8
If Phase<>6
DrawingMode(#PB_2DDrawing_Outlined )
EndIf
Ellipse(x_source,y_source,Taille_x*4,Taille_x,Couleur_ref) ; une ellipse creuse verticale
;EndIf
ElseIf De >=8 And De<=10
If Phase<>6
DrawingMode(#PB_2DDrawing_Outlined )
EndIf
Ellipse(x_source,y_source,Taille_x,Taille_x*4,Couleur_ref) ; une autre ellipse creuse horizontale
EndIf
While WindowEvent():Wend
SetGadgetState(#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndProcedure
Procedure peint_croix(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2)) ; le Pinceau Croix
;- le Pinceau Croix
; By Dobro
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
StartDrawing(ScreenOutput())
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
FlipBuffers()
StartDrawing(ScreenOutput())
EndIf
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
Couleur_ref=image_tab(x_source,y_source) ; recup la Couleur
De=Random(3,1)
If De >=1
;If Phase<>6
;DrawingMode(#PB_2DDrawing_Outlined )
;EndIf
Ellipse(x_source,y_source,Taille_x*4,Taille_y,Couleur_ref)
EndIf
If De >=2
;If Phase<>6
;DrawingMode(#PB_2DDrawing_Outlined )
;EndIf
Ellipse(x_source,y_source,Taille_x,Taille_y*4,Couleur_ref)
EndIf
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndProcedure
Procedure peint_vermicelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2)) ; le Pinceau Croix
;- le Pinceau vermicelle
; By Dobro
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
StartDrawing(ScreenOutput())
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
FlipBuffers()
StartDrawing(ScreenOutput())
EndIf
;phase=7
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
Couleur_ref=image_tab(x_source,y_source) ; recup la Couleur
De=Random(2,1)
;De=1
If phase>0 And phase<5
If De =1
For t=1 To 20
x_source=x_source+Random(Taille_x)
y_source=y_source+Random(Taille_y)
Circle(x_source,y_source,Taille_x,Couleur_ref)
Next t
EndIf
If De =2
For t=1 To 20
x_source=x_source-Random(Taille_x)
y_source=y_source+Random(Taille_y)
Circle(x_source,y_source,Taille_x,Couleur_ref)
Next t
EndIf
EndIf
If phase >4 And phase<6
If De =1
For t=1 To 40
x_source=x_source+Random(Taille_x)
y_source=y_source+Random(Taille_y)
Circle(x_source,y_source,Taille_x,Couleur_ref)
Next t
EndIf
If De =2
For t=1 To 10
x_source=x_source-Random(Taille_x)
y_source=y_source+Random(Taille_y)
Circle(x_source,y_source,Taille_x,Couleur_ref)
Next t
EndIf
EndIf
If phase >5 And phase<7
If De =1
For t=1 To 10
x_source=x_source+Random(Taille_x)
y_source=y_source+Random(Taille_y)
Circle(x_source,y_source,Taille_x,Couleur_ref)
Next t
EndIf
If De =2
For t=1 To 40
x_source=x_source-Random(Taille_x)
y_source=y_source+Random(Taille_y)
Circle(x_source,y_source,Taille_x,Couleur_ref)
Next t
EndIf
EndIf
If phase >6
If De =1
For t=1 To 20
x_source=x_source+Random(Taille_x)
y_source=y_source+Random(Taille_y)
Circle(x_source,y_source,Taille_x,Couleur_ref)
Next t
EndIf
If De =2
For t=1 To 20
x_source=x_source-Random(Taille_x)
y_source=y_source+Random(Taille_y)
Circle(x_source,y_source,Taille_x,Couleur_ref)
Next t
EndIf
EndIf
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndProcedure
Procedure peint_croix2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2)) ; le pinceau Croix2
;-le pinceau Croix2
; By Dobro
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
StartDrawing(ScreenOutput())
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
FlipBuffers()
StartDrawing(ScreenOutput())
EndIf
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
Couleur_ref=image_tab(x_source,y_source) ; recup la Couleur
De=Random(2,1)
If De >=1
;If Phase<>6
DrawingMode(#PB_2DDrawing_Outlined )
;EndIf
Ellipse(x_source,y_source,Taille_x*8,Taille_x,Couleur_ref)
EndIf
If De >=2
;If Phase<>6
DrawingMode(#PB_2DDrawing_Outlined )
;EndIf
Ellipse(x_source,y_source,Taille_x,Taille_x*8,Couleur_ref)
EndIf
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndProcedure
Procedure peint_pointillism(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
;- le pinceau pointillism
; By Dobro
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
StartDrawing(ScreenOutput())
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
FlipBuffers()
StartDrawing(ScreenOutput())
EndIf
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
Couleur_ref=image_tab(x_source,y_source) ; recup la Couleur
DrawingMode(#PB_2DDrawing_Default)
For nb=1 To 6
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
Next nb
;{ old
If old
;De=Random(10)
If Couleur_ref<RGB(50,50,50)
DrawingMode(#PB_2DDrawing_AlphaBlend )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref)/2,green(Couleur_ref)/2,blue(Couleur_ref)))
For nb=1 To 6
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
Next nb
EndIf
If Couleur_ref>RGB(49,49,49) And Couleur_ref<RGB(100,100,100)
DrawingMode(#PB_2DDrawing_AlphaBlend )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref)/2,green(Couleur_ref),blue(Couleur_ref)))
For nb=1 To 6
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
Next nb
EndIf
If Couleur_ref>RGB(99,99,99) And Couleur_ref<RGB(150,150,150)
DrawingMode(#PB_2DDrawing_AlphaBlend )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref),green(Couleur_ref)/2,blue(Couleur_ref)/2))
For nb=1 To 5
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
Next nb
EndIf
If Couleur_ref>RGB(149,149,149) And Couleur_ref<RGB(200,200,200)
DrawingMode(#PB_2DDrawing_AlphaBlend )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref/2),green(Couleur_ref),blue(Couleur_ref)/2))
For nb=1 To 4
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGBA(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref),100))
Next nb
EndIf
If Couleur_ref>RGB(199,199,199) And Couleur_ref<RGB(255,255,255)
DrawingMode(#PB_2DDrawing_AlphaBlend )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref),green(Couleur_ref),blue(Couleur_ref)))
For nb=1 To 4
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_x)
Circle(x_source,y_source,Taille_x,RGBA(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref),100))
Next nb
EndIf
EndIf
;}
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndProcedure
Procedure peint_aquarelle(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
;- le pinceau Aquarelle
; By Dobro
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
; lance le mode pointillisme :)
If flag_bouton_on=0
pointillism(largeur,Hauteur,image_tab()) ; une fois le tableau fait ,....
EndIf
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
; on Aquarellise !!
StartDrawing(ScreenOutput())
SetGadgetText(#Gadget_text, "Aquarellisation !")
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
FlipBuffers()
StartDrawing(ScreenOutput())
EndIf
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
larg=ScreenWidth()
haut=ScreenHeight()
If y_source>2 And x_source>4 And x_source<larg-3 And y_source<haut-1
col1= Point(x_source,y_source)
If flag_bouton_on=0
r=Red(col1)+10
v=Green(col1)+10
b=Blue(col1)+10
Else
r=Red(col1)+1
v=Green(col1)+1
b=Blue(col1)+1
EndIf
If r>255 : r=255:EndIf
If v>255 : v=255:EndIf
If b>255 : b=255:EndIf
col1=RGBA(r,v,b,8)
;StopDrawing()
DrawingMode(#PB_2DDrawing_AlphaBlend )
;circle(x_source,y_source,5,col1)
xxx=-3+Random(6)
Ellipse(x_source+xxx,y_source,taille_x,taille_y,col1)
EndIf
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndProcedure
Procedure peint_pop_art(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
;- le pinceau Pop_art
; By Dobro
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
StartDrawing(ScreenOutput())
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
FlipBuffers()
StartDrawing(ScreenOutput())
EndIf
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
Couleur_ref=image_tab(x_source,y_source) ; recup la Couleur
;De=Random(10)
If Couleur_ref<RGB(50,50,50)
dee=Random(3,1)
If dee=1:Couleur_ref=RGB(Red(Couleur_ref),0,0):EndIf : If dee=2:Couleur_ref=RGB(0,Green(Couleur_ref),0):EndIf: If dee=3:Couleur_ref=RGB(0,0,Blue(Couleur_ref)):EndIf
DrawingMode(#PB_2DDrawing_AlphaBlend )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref)/2,green(Couleur_ref)/2,blue(Couleur_ref)))
For nb=1 To 6
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGBA(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref),255))
Next nb
EndIf
If Couleur_ref<RGB(26,26,26)
Couleur_ref=0
DrawingMode(#PB_2DDrawing_AlphaBlend )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref)/2,green(Couleur_ref)/2,blue(Couleur_ref)))
For nb=1 To 6
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGBA(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref),255))
Next nb
EndIf
If Couleur_ref>RGB(25,25,25) And Couleur_ref<RGB(50,50,50)
r=Red(Couleur_ref)
v=Green(Couleur_ref)
b=Blue(Couleur_ref)
Couleur_ref=(r+v+b)/3
DrawingMode(#PB_2DDrawing_AlphaBlend )
Circle(x_source,y_source,Taille_x,RGB(Red(Couleur_ref)/2,Green(Couleur_ref)/2,Blue(Couleur_ref)))
For nb=1 To 6
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGBA(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref),20))
Next nb
EndIf
If Couleur_ref>RGB(49,49,49) And Couleur_ref<RGB(100,100,100)
Couleur_ref=RGB(0,0,Blue(Couleur_ref)) ;bleu
DrawingMode(#PB_2DDrawing_AlphaBlend )
Circle(x_source,y_source,Taille_x,RGB(Red(Couleur_ref)/2,Green(Couleur_ref),Blue(Couleur_ref)))
For nb=1 To 6
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGBA(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref),10))
Next nb
EndIf
If Couleur_ref>RGB(99,99,99) And Couleur_ref<RGB(150,150,150)
Couleur_ref=RGB(0,Green(Couleur_ref),0) ; vert
DrawingMode(#PB_2DDrawing_AlphaBlend )
Circle(x_source,y_source,Taille_x,RGB(Red(Couleur_ref),Green(Couleur_ref)/2,Blue(Couleur_ref)/2))
For nb=1 To 5
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGBA(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref),10))
Next nb
EndIf
If Couleur_ref>RGB(149,149,149) And Couleur_ref<RGB(200,200,200)
Couleur_ref=RGB(Red(Couleur_ref),0,0) ;rouge
DrawingMode(#PB_2DDrawing_AlphaBlend )
Circle(x_source,y_source,Taille_x,RGB(Red(Couleur_ref/2),Green(Couleur_ref),Blue(Couleur_ref)/2))
For nb=1 To 4
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y)
Circle(x_source,y_source,Taille_x,RGBA(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref),10))
Next nb
EndIf
If Couleur_ref>RGB(199,199,199) And Couleur_ref<RGB(255,255,255)
Couleur_ref=RGB(Red(Couleur_ref),Green(Couleur_ref),0) ; jaune
DrawingMode(#PB_2DDrawing_AlphaBlend )
Circle(x_source,y_source,Taille_x,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
For nb=1 To 4
x_source=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x)
y_source=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_x)
Circle(x_source,y_source,Taille_x,RGBA(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref),10))
Next nb
EndIf
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndProcedure
Procedure peint_flocon(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
;- le pinceau flocon
; By Dobro
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
StartDrawing(ScreenOutput())
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
FlipBuffers()
StartDrawing(ScreenOutput())
EndIf
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
Couleur_ref=image_tab(x_source,y_source) ; recup la Couleur
;De=Random(10)
If Couleur_ref<RGB(50,50,50)
DrawingMode(#PB_2DDrawing_Default )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref)/2,green(Couleur_ref)/2,blue(Couleur_ref)))
For nb=1 To 6
x_source2=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x*2)
y_source2=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y*2)
LineXY(x_source,y_source,x_source2,y_source2,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
Next nb
EndIf
If Couleur_ref>RGB(49,49,49) And Couleur_ref<RGB(100,100,100)
DrawingMode(#PB_2DDrawing_Default )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref)/2,green(Couleur_ref),blue(Couleur_ref)))
For nb=1 To 6
x_source2=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x*2)
y_source2=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y*2)
LineXY(x_source,y_source,x_source2,y_source2,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
Next nb
EndIf
If Couleur_ref>RGB(99,99,99) And Couleur_ref<RGB(150,150,150)
DrawingMode(#PB_2DDrawing_Default )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref),green(Couleur_ref)/2,blue(Couleur_ref)/2))
For nb=1 To 5
x_source2=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x*4)
y_source2=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y*4)
LineXY(x_source,y_source,x_source2,y_source2,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
Next nb
EndIf
If Couleur_ref>RGB(149,149,149) And Couleur_ref<RGB(200,200,200)
DrawingMode(#PB_2DDrawing_Default )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref/2),green(Couleur_ref),blue(Couleur_ref)/2))
For nb=1 To 2
x_source2=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x*8)
y_source2=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_y*8)
LineXY(x_source,y_source,x_source2,y_source2,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
Next nb
EndIf
If Couleur_ref>RGB(199,199,199) And Couleur_ref<RGB(255,255,255)
DrawingMode(#PB_2DDrawing_Default )
;Circle(x_source,y_source,Taille_x,Rgb(red(Couleur_ref),green(Couleur_ref),blue(Couleur_ref)))
For nb=1 To 8
x_source2=x_source+Taille_x*Sin(nb*2 * 3.1415926/Taille_x*10)
y_source2=y_source+Taille_x*Cos(nb*2 * 3.1415926/Taille_x*10)
LineXY(x_source,y_source,x_source2,y_source2,RGB(Red(Couleur_ref),Green(Couleur_ref),Blue(Couleur_ref)))
Next nb
EndIf
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndProcedure
Procedure peint_cederavic(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2)) ; le pinceau Cederavic
;-le pinceau Cederavic
; By Cederavic
img = CreateImage(#PB_Any, largeur,Hauteur, 32 | #PB_Image_Transparent)
StartDrawing(ScreenOutput())
img2 = GrabDrawingImage(#PB_Any, 0, 0, largeur,Hauteur)
StopDrawing()
StartDrawing(ImageOutput(img))
If Phase = 1
DrawImage(ImageID(#image_reference), 0, 0)
Else
DrawImage(ImageID(img2), 0, 0)
EndIf
StopDrawing()
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
StartDrawing(ImageOutput(img))
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
StartDrawing(ScreenOutput()) : DrawingMode(#PB_2DDrawing_Default) : DrawImage(ImageID(img), 0, 0) : StopDrawing()
FlipBuffers()
StartDrawing(ImageOutput(img))
EndIf
DrawingMode(#PB_2DDrawing_AlphaBlend)
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
maxRange.d = (1 - i / nombre_de_coup_de_pinceau) * Taille_y
If size < 2 : size = 2 : EndIf
angle.d = Random((#PI * 2) * 1000) / 1000
angleDep.d = Random((#PI * 2) * 1000) / 100000 - ((#PI * 1000) / 100000)
angleAdd.d = 0
color = image_tab(x_source,y_source) ; recup la Couleur
For iRange = 1 To maxRange
angleAdd + angleDep
xC = x_source + Cos(angle + angleAdd) * iRange
yC = y_source + Sin(angle + angleAdd) * iRange
If xC >= 0 And xC <= largeur And yC >= 0 And yC <= Hauteur
cS.d = (1 - iRange / maxRange) * Taille_x
If cS < 1.6 : cS = 1.6 : EndIf
cA.d = (1 - iRange / maxRange) * 4
If cA < 1 : cA = 1 : EndIf
r.d = Red(color) * 0.7 + Red(image_tab(xC, yC)) * 0.3
g.d = Green(color) * 0.7 + Green(image_tab(xC, yC)) * 0.3
b.d = Blue(color) * 0.7 + Blue(image_tab(xC, yC)) * 0.3
Circle(xC, yC, cS, RGBA(r, g, b, cA))
EndIf
Next
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndProcedure
Procedure peint_BrosseFloue(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
img = CreateImage(#PB_Any, largeur,Hauteur, 32 | #PB_Image_Transparent)
If img
If StartDrawing(ScreenOutput())
img2 = GrabDrawingImage(#PB_Any, 0, 0, largeur,Hauteur)
StopDrawing()
EndIf
EndIf
If StartDrawing(ImageOutput(img))
If Phase = 1
DrawImage(ImageID(#image_reference), 0, 0)
Else
DrawImage(ImageID(img2), 0, 0)
EndIf
StopDrawing()
EndIf
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
If StartDrawing(ImageOutput(img))
; on efface d'abord l'image (utile pour la transparence ?)
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0,0,largeur,Hauteur,RGBA(0,0,0,0))
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
StartDrawing(ScreenOutput()) : DrawingMode(#PB_2DDrawing_Default) : DrawImage(ImageID(img), 0, 0) : StopDrawing()
FlipBuffers()
StartDrawing(ImageOutput(img))
EndIf
DrawingMode(#PB_2DDrawing_Gradient|#PB_2DDrawing_AlphaBlend)
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
color = image_tab(x_source,y_source) ; recup la Couleur
BackColor(RGBA(Red(color),Green(color),Blue(color),10))
FrontColor(RGBA(Red(color),Green(color),Blue(color),0))
CircularGradient(x_source+Taille_x,y_source+Taille_x, Taille_x)
Box(x_source,y_source,Taille_x*4,Taille_x)
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndIf
EndProcedure
Procedure peint_pointillism2(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, delay_affichage, Array image_tab(2))
;- le pinceau pointillism
; By Dobro
; modified by blendman
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
img = CreateImage(#PB_Any, largeur,Hauteur, 32 | #PB_Image_Transparent)
If img
If StartDrawing(ScreenOutput())
img2 = GrabDrawingImage(#PB_Any, 0, 0, largeur,Hauteur)
StopDrawing()
EndIf
EndIf
If StartDrawing(ImageOutput(img))
If Phase = 1
DrawImage(ImageID(#image_reference), 0, 0)
Else
DrawImage(ImageID(img2), 0, 0)
EndIf
StopDrawing()
EndIf
SetGadgetAttribute(#Gadget_scroll, #PB_ProgressBar_Maximum, nombre_de_coup_de_pinceau)
If StartDrawing(ImageOutput(img))
; on efface d'abord l'image (utile pour la transparence ?)
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0,0,largeur,Hauteur,RGBA(0,0,0,0))
For i=1 To nombre_de_coup_de_pinceau
If i%delay_affichage = 0
StopDrawing()
StartDrawing(ScreenOutput()) : DrawingMode(#PB_2DDrawing_Default) : DrawImage(ImageID(img), 0, 0) : StopDrawing()
FlipBuffers()
StartDrawing(ImageOutput(img))
EndIf
If flag_bouton_on=0
x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
y_source=Random(hauteur-1)
Else
x_source=xx_mouse
y_source=yy_mouse
If x_source<0 :x_source=1:EndIf
If x_source>1023 :x_source=1023:EndIf
EndIf
DrawingMode(#PB_2DDrawing_Outlined)
color = image_tab(x_source,y_source) ; recup la Couleur
BackColor(RGBA(Red(color),Green(color),Blue(color),30))
FrontColor(RGBA(Red(color),Green(color),Blue(color),0))
Ellipse(x_source+Taille_x,y_source+Taille_x, Taille_x/3*Random(4),Taille_x/3*Random(4))
DrawingMode(#PB_2DDrawing_Gradient|#PB_2DDrawing_AlphaBlend)
CircularGradient(x_source+Taille_x,y_source+Taille_x, Taille_x)
Box(x_source,y_source,Taille_x*2,Taille_x*2)
While WindowEvent():Wend
SetGadgetState (#Gadget_scroll, i)
Next i
StopDrawing()
FlipBuffers()
EndIf
EndProcedure
;}
;{ les Prefs
Procedure Write_preference()
If CreatePreferences("Pure_autopaint.prefs")
PreferenceGroup("Info")
WritePreferenceString("ApplicationName", "Pure_autopaint")
WritePreferenceString("Version", "1.00")
PreferenceGroup("Window")
PreferenceComment(" Les Window dimensions")
PreferenceComment("")
WritePreferenceLong ("WindowX", WindowX(#window))
WritePreferenceLong ("WindowY", WindowY(#window))
WritePreferenceLong ("WindowX_larg", WindowWidth(#window))
WritePreferenceLong ("WindowY_haut", WindowHeight(#window))
PreferenceGroup("Path")
WritePreferenceString("chemin image", File_image$)
ClosePreferences()
EndIf
EndProcedure
Procedure Read_preference()
Shared win_x,win_y,File_image$
If OpenPreferences("Pure_autopaint.prefs")
PreferenceGroup("Info")
ReadPreferenceString("ApplicationName", "")
ReadPreferenceString("Version", "")
PreferenceGroup("Window")
win_x=ReadPreferenceLong ("WindowX", 0)
win_y=ReadPreferenceLong ("WindowY", 0)
larg_fenetre=ReadPreferenceLong ("WindowX_larg", 800)
haut_fenetre=ReadPreferenceLong ("WindowY_haut", 600)
PreferenceGroup("Path")
File_image$=ReadPreferenceString("chemin image", "c:\")
ClosePreferences()
EndIf
EndProcedure
Procedure MyWindowCallback(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_LBUTTONDOWN
flag_bouton_on=1
Case #WM_LBUTTONUP
flag_bouton_on=0
Case #WM_SETCURSOR
;; Debug "Handle= "+Str(wParam)+" , "+"ID= "+Str(GetDlgCtrlID_(wParam))
Case #WM_SIZING
larg_fenetre = WindowWidth(#window)
haut_fenetre = WindowHeight(#window)
If IsGadget(#Gadget_list_style)
ResizeGadget(#Gadget_list_style, #PB_Ignore, #PB_Ignore,180,haut_fenetre-400-y_bouton)
EndIf
EndSelect
ProcedureReturn Result
EndProcedure
;}
;}
c'est pourquoi dans les Derniere Version, j'impose 1000 et pas 10 000Frenchy Pilou a écrit :Pour l'exe
Demande d'un bouton d'arrêt d'urgence!