#@gmic

## Site : http://www.aljacom.com/~gmic/  

## Adresse courriel : sylvie.alexandre@aljacom.com 

## Adresse de ce fichier : http://www.aljacom.com/~gmic/samj.gmic

## Ce fichier "samj.gmic" est dit avec Notepad++    http://notepad-plus-plus.org/

## La licence des filtres est la mme que celle de G'MIC.

## Respectez notre univers, merci  :o)		Respect our universe, thank you  :o)


#-------------------
# Released filters
#-------------------


#-------------------
# Testing filters
#-------------------

#@gimp _<b>Testing</b>
#@gimp <i>Samj</i>
#------------------


#@gimp About : _none_, samj_about
#@gimp : note = note(<b>Informations - Compilations :</b>)
#@gimp : note = link("http://www.aljacom.com/~gmic/","http://www.aljacom.com/~gmic/")
#@gimp : note = note(<b>Filtres - Filters :</b>)
#@gimp : note = note("Les filtres contenus dans ce r\303\251pertoire sont en cours de d\303\251veloppement.")
#@gimp : note = note("The filters defined in this folder are quite <i>experimental</i> and subject to high changes.")
samj_about :
-text Bonjour!,20,90,100,1,255,255,255,200



						################################################################
						##                                                            ##
						##              Dbut ensemble test_dessin_peinture           ##
						##                                                            ##
						################################################################



#********** test_dessin_peinture **********
##
##                                       Version 1.00 samj 21 dcembre 2010 www.aljacom.com/~gimp quelques essais des filtres de gmic sur version G'MIC 1470
##                                                  Mon premier "filtre" cr avec G'MIC  http://www.aljacom.com/~gmic/test_dessin_peinture_gmic.html
##                                                                          mis au format G'MIC Gimp le 21 aot 2012
##
#@gimp Test Dessin Peinture : test_dessin_peinture, test_dessin_peinture_preview
#@gimp : sep = separator(), note = note("<small>Nettet\303\251</small>")
#@gimp : Nettet\303\251 = int(170,0,400)
#@gimp : D\303\251tail = float(2.15,0,5)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2010/12/21</i>.</small>")

test_dessin_peinture :

####### Dclaration des variables

nettete=$1
detail=$2

####### Ligne de commandes

	-repeat @# -l[$>]
		-remove_opacity		
		
		nettete={$nettete+10}	
		nettete1={$nettete/1000}
		nettete1={$nettete1+0.8}
		nettete2={$nettete/2}	
		nettete3={$nettete/4}	
		nettete3={$nettete3+10}

		-gimp_anisotropic_smoothing 80,$nettete1,0.3,0.6,1.1,0.8,30,2,0,1,5,1,1
		-n 127,255 
		-sharpen $nettete2
		-cartoon $detail,$nettete3,30,0.18,0.75,256
		-sharpen $nettete			
	-endl -done

test_dessin_peinture_preview :
	-gimp_split_preview "-test_dessin_peinture ${1--2}",$-1







#********** test_dessin_peinture_sequences **********
##
##
#@gimp Test Dessin Peinture Sequences : test_dessin_peinture_sequences, test_dessin_peinture_sequences_preview
#@gimp : sep = separator(), note = note("<small>Animation D\303\251but / Start</small>")
#@gimp : Nettet\303\251 = int(400,0,400)
#@gimp : D\303\251tail = float(0,0,5)
#@gimp : sep = separator(), note = note("<small>Animation Fin / End</small>")
#@gimp : Nettet\303\251 = int(0,0,400)
#@gimp : D\303\251tail = float(5,0,5)
#@gimp : sep = separator(), note = note("<small>Animation</small>")
#@gimp : Frames = int(2,2,30)
#@gimp : Output : As frames 1 / As frames and files 0 = _bool(1)
#@gimp : Output folder = _folder()
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2012/08/23</i>.</small>")

test_dessin_peinture_sequences :

####### Dclaration des variables

nettete=$1
detail=$2

nettete_fin=$3
detail_fin=$4

####### Ligne de commandes


	-remove_opacity		
		
	-if $6 
		-animate fonction_test_dessin_peinture_sequences,"$1,$2","$3,$4",$5
	-else
		filename="$7/test_dessin_peinture_sequences.png"
		-animate fonction_test_dessin_peinture_sequences,"$1,$2","$3,$4",$5,1,$filename	
	-endif
		


test_dessin_peinture_sequences_preview :
	# gimp_animate_preview : _command,_parameters1,_parameters2,_compute_half={ 0 | 1 },_width>=0,_height>=0
	-gimp_animate_preview fonction_test_dessin_peinture_sequences,"$1,$2","$3,$4",0,$w,$h


fonction_test_dessin_peinture_sequences :

	nettete=$1
	detail=$2
	nettete={$nettete+10}	
	nettete1={$nettete/1000}
	nettete1={$nettete1+0.8}
	nettete2={$nettete/2}	
	nettete3={$nettete/4}	
	nettete3={$nettete3+10}

	-gimp_anisotropic_smoothing 80,$nettete1,0.3,0.6,1.1,0.8,30,2,0,1,5,1,1
	-n 127,255 
	-sharpen $nettete2
	-cartoon $detail,$nettete3,30,0.18,0.75,256
	-sharpen $nettete



						


						################################################################
						##                                                            ##
						##              Fin ensemble test_dessin_peinture             ##
						##                                                            ##
						################################################################







						################################################################
						##                                                            ##
						##                Dbut ensemble Chalk it up                  ##
						##                                                            ##
						################################################################







#********** Chalk it up **********
##                                       forum   :     http://www.flickr.com/groups/gmic/discuss/72157631155481890/
##                                                     http://www.gimpchat.com/viewtopic.php?f=9&t=4982
##                                       Version 1.00  19 aot 2012 Merci  David pour la transposition au format G'MIC pour Gimp et l'aide :o)
##                                       Version 1.1   20 aot 2012 modification pour calques avec canal alpha par ajout de -remove_opacity
##                                                                  ajout du traitement par canaux pour gimp_morpho & gimp_spread
##                                       Version 1.2   16 octobre 2012 modification paramtres gimp_morpho + choix RGB
#@gimp Chalk it up : samj_chalkitup, samj_chalkitup_preview
#@gimp : note = note("Inspired by the tutorial proposed by Lylejk")
#@gimp : note = link("http://justpaste.it/chalk_it_up","http://justpaste.it/chalk_it_up")
#@gimp : sep = separator(), note = note("<small>Painting parameters</small>")
#@gimp : Abstraction = int(5,0,10)
#@gimp : Details scale = float(2.5,0,10)
#@gimp : Color = float(1.5,0,5)
#@gimp : Smoothness = float(50,0,200)
#@gimp : Sharpen shades = bool(1)
#@gimp : sep = separator(), note = note("<small>Morpho parameters</small>")
#@gimp : Action = choice(5,"Erosion","Dilation","Opening","Closing","Original - Erosion","Dilation - Original","Original - Opening","Closing - Original")
#@gimp : Size = int(5,0,32)
#@gimp : Invert colors = bool(0)
#@gimp : Shape = int(0,0,1)
#@gimp : Channel(s) = choice(2,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), note = note("<small>Spread parameters</small>")
#@gimp : X-variations = float(0.8,-5,5)
#@gimp : Y-variations = float(1.9,-5,5)
#@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Authors : <i>Samj/Ronounours</i>.      Latest update : <i>2012/10/16</i>.</small>")

samj_chalkitup :

####### Dclaration des variables

#gimp_painting
Abstraction=$1
Details_scale=$2
Color=$3
Smoothness=$4
Sharpen_shades=$5

#gimp_morpho
Action=$6
Size=$7
Invert_colors=$8
Shape=$9
Channel_morpho=$10

#gimp_spread
X_variations=$11
Y_variations=$12
Channel_spread=$13

####### Ligne de commandes

	-repeat @# -l[$>]
		-remove_opacity -gimp_painting $Abstraction,$Details_scale,$Color,$Smoothness,$Sharpen_shades -gimp_morpho $Action,$Size,$Invert_colors,$Shape,$Channel_morpho,0 -gimp_spread $X_variations,$Y_variations,$Channel_spread
	-endl -done

samj_chalkitup_preview :
	-gimp_split_preview "-samj_chalkitup ${1--2}",$-1




#********** Chalk it up Sequences**********
##                                       Version 1.00  21 aot 2012 
##                                       Version 1.10  16 octobre 2012 modification paramtres gimp_morpho + choix RGB
##
#@gimp Chalk it up Sequences : samj_chalkitup_sequences, samj_chalkitup_sequences_preview
#@gimp : note = note("Inspired by the tutorial proposed by Lylejk")
#@gimp : note = link("http://justpaste.it/chalk_it_up","http://justpaste.it/chalk_it_up")
#@gimp : sep = separator(), note = note("<small>Animation</small>")
#@gimp : Frames = int(2,2,30)
#@gimp : Output : As frames 1 / As frames and files 0 = _bool(1)
#@gimp : Output folder = _folder()
#@gimp : sep = separator(), note = note("<small>Morpho parameters</small>")
#@gimp : Action = choice(5,"Erosion","Dilation","Opening","Closing","Original - Erosion","Dilation - Original","Original - Opening","Closing - Original")
#@gimp : Size = int(5,0,32)
#@gimp : Invert colors = bool(0)
#@gimp : Shape = int(0,0,1)
#@gimp : Channel(s) = choice(2,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), note = note("<small>Spread parameters</small>")
#@gimp : X-variations = float(0.8,-5,5)
#@gimp : Y-variations = float(1.9,-5,5)
#@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2012/10/16</i>.</small>")

samj_chalkitup_sequences :

####### Dclaration des variables

#gimp_painting


##Abstraction=5
##Details_scale=2.5
##Color=1.5
##Smoothness=50
##Sharpen_shades=1

#gimp_morpho
Action=$4
Size=$5
Invert_colors=$6
Shape=$7
Channel_morpho=$8

#gimp_spread
X_variations=$9
Y_variations=$10
Channel_spread=$11

####### Ligne de commandes



	-remove_opacity 


	-if $2 
		-animate gimp_painting,"1,0,1,0,1","10,10,5,200,1",$1 -gimp_morpho $Action,$Size,$Invert_colors,$Shape,$Channel_morpho,0 -gimp_spread $X_variations,$Y_variations,$Channel_spread
	-else
		filename="$3/samj_chalkitup_sequences.png"
		-animate gimp_painting,"1,0,1,0,1","10,10,5,200,1",$1 -gimp_morpho $Action,$Size,$Invert_colors,$Shape,$Channel_morpho,0 -gimp_spread $X_variations,$Y_variations,$Channel_spread -o $filename	
	-endif




samj_chalkitup_sequences_preview :

	Abstraction=1
	Details_scale=0
	Color=1
	Smoothness=0
	Sharpen_shades=1

	#gimp_morpho
	Action=$4
	Size=$5
	Invert_colors=$6
	Shape=$7
	Channel_morpho=$8

	#gimp_spread
	X_variations=$9
	Y_variations=$10
	Channel_spread=$11
 
	-remove_opacity -gimp_painting $Abstraction,$Details_scale,$Color,$Smoothness,$Sharpen_shades -gimp_morpho $Action,$Size,$Invert_colors,$Shape,$Channel_morpho,0 -gimp_spread $X_variations,$Y_variations,$Channel_spread
	-text_outline[-1] "Start",1,0,13,1,1,255




						################################################################
						##                                                            ##
						##                 Fin  ensemble Chalk it up                  ##
						##                                                            ##
						################################################################









						################################################################
						##                                                            ##
						##                Dbut Craie sur tableau noir                ##
						##                                                            ##
						################################################################
						
## C'est un regroupement des 2 filtres   test_dessin_peinture   et	 samj_chalkitup
## Les contours sont plus nets et les ciels plus beaux qu'en utilisant uniquement samj_chalkitup
## Les 2 filtres sont regroups pour bnficier de l'aperu.
## Le temps de traitement est trop long pour crer des animations.
## On utilise les fonctions des filtres prcdents.					
						


#********** Craie sur tableau noir **********
##
##                                       Version 1.00  par samj le 22 aot 2012
##                                       Version 1.10  16 octobre 2012 modification paramtres gimp_morpho + choix RGB
##
#@gimp Craie sur tableau noir / Chalk on blackboard  : samj_craie_sur_tableau_noir, samj_craie_sur_tableau_noir_preview
#@gimp : note = note("Regroupement de test_dessin_peinture et samj_chalkitup")
#@gimp : sep = separator(), note = note("<small>test_dessin_peinture</small>")
#@gimp : Nettet\303\251 = int(170,0,400)
#@gimp : D\303\251tail = float(2.15,0,5)
#@gimp : sep = separator(), note = note("<small>Painting parameters</small>")
#@gimp : Abstraction = int(5,0,10)
#@gimp : Details scale = float(2.5,0,10)
#@gimp : Color = float(1.5,0,5)
#@gimp : Smoothness = float(50,0,200)
#@gimp : Sharpen shades = bool(1)
#@gimp : sep = separator(), note = note("<small>Morpho parameters</small>")
#@gimp : Action = choice(5,"Erosion","Dilation","Opening","Closing","Original - Erosion","Dilation - Original","Original - Opening","Closing - Original")
#@gimp : Size = int(5,0,32)
#@gimp : Invert colors = bool(0)
#@gimp : Shape = int(0,0,1)
#@gimp : Channel(s) = choice(2,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), note = note("<small>Spread parameters</small>")
#@gimp : X-variations = float(0.8,-5,5)
#@gimp : Y-variations = float(1.9,-5,5)
#@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2012/08/22</i>.</small>")

samj_craie_sur_tableau_noir :

####### Dclaration des variables



nettete=$1
detail=$2


#gimp_painting
Abstraction=$3
Details_scale=$4
Color=$5
Smoothness=$6
Sharpen_shades=$7

#gimp_morpho
Action=$8
Size=$9
Invert_colors=$10
Shape=$11
Channel_morpho=$12

#gimp_spread
X_variations=$13
Y_variations=$14
Channel_spread=$15

####### Ligne de commandes

	-repeat @# -l[$>]
		-remove_opacity 
		
		nettete={$nettete+10}	
		nettete1={$nettete/1000}
		nettete1={$nettete1+0.8}
		nettete2={$nettete/2}	
		nettete3={$nettete/4}	
		nettete3={$nettete3+10}

		-gimp_anisotropic_smoothing 80,$nettete1,0.3,0.6,1.1,0.8,30,2,0,1,5,1,1
		-n 127,255 
		-sharpen $nettete2
		-cartoon $detail,$nettete3,30,0.18,0.75,256
		-sharpen $nettete		
		
		-gimp_painting $Abstraction,$Details_scale,$Color,$Smoothness,$Sharpen_shades -gimp_morpho $Action,$Size,$Invert_colors,$Shape,$Channel_morpho,0 -gimp_spread $X_variations,$Y_variations,$Channel_spread
	-endl -done

samj_craie_sur_tableau_noir_preview :
	-gimp_split_preview "-samj_craie_sur_tableau_noir ${1--2}",$-1

	
	
	

						################################################################
						##                                                            ##
						##                 Fin Craie sur tableau noir                 ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##         Ensemble Spirales pleines  samj_spi(x)_gimp        ##
						##                                                            ##
						################################################################




## Spirales version origine du 3 fvrier 2012
##
#@gimp Spirale 1 / Spiral 1: samj_spi_gimp, samj_spi_gimp_preview
#@gimp : sep = separator(), note = note("<small>Spirale / Spiral</small>")
#@gimp : Centre / Center X (%) = float(50,0,100)
#@gimp : Centre / Center Y (%) = float(50,0,100)
#@gimp : Tours / Turns = int(10,1,200)
#@gimp : Increment angulaire / Angular increment = float(6,0.5,359.9)
#@gimp : Coeff. agrandissement / Expansion coefficient = float(0.05,0.02,2)
#@gimp : Type de rendu / Rendering type = choice("Points","Cercles / Circles","Polygones couleurs aleatoires / Polygons random colors","Lignes couleurs aleatoires / Lines random colors","Segments couleurs aleatoires / Segments random colors","Lignes couleur / Lines color","Segments couleur / Segments color","Polygones 2 couleurs / Polygons 2 colors")
#@gimp : Dimension rendu / Dimensional rendering = int(2,0,32)
#@gimp : Couleur / Color = color(255,255,0)
#@gimp : Sens de rotation / Direction of rotation = int(0,0,3)
#@gimp : Alpha = bool(0)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2012/08/24</i>.</small>")



samj_spi_gimp :



	centre_origine_X={$1/100*w}
	centre_origine_Y={$2/100*h}
	tours=$3
	increment_theta=$4
	coeff_dim=$5
	rendu=$6
	dimension_rendu=$7
	r_rendu=$8
	v_rendu=$9
	b_rendu=$10
	sens_rotation=$11
	alpha=$12


	theta={$tours*360}
	X_precedent=$centre_origine_X
	Y_precedent=$centre_origine_Y
	compteur_boucle=0
	
	changement_couleur=1


	-repeat @# -l[$>]
	
	-if {$alpha==0} 	
			-remove_opacity 			
	-endif

		-do

				-if {$sens_rotation==0} 

						X={$centre_origine_X+{$coeff_dim*round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}}
						Y={$centre_origine_Y+{$coeff_dim*round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}}

				-endif

				-if {$sens_rotation==1} 

						X={$centre_origine_X+{$coeff_dim*-round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}}
						Y={$centre_origine_Y+{$coeff_dim*-round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}}

				-endif

				-if {$sens_rotation==2}

						X={$centre_origine_X+{$coeff_dim*round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}}
						Y={$centre_origine_Y+{$coeff_dim*round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}}

				-endif		

				-if {$sens_rotation==3}

						X={$centre_origine_X+{$coeff_dim*-round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}}
						Y={$centre_origine_Y+{$coeff_dim*-round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}}

				-endif			

				-if {$rendu==0} 
					-point $X,$Y,0,1,$r_rendu,$v_rendu,$b_rendu
				-endif				

				-if {$rendu==1} 
					-ellipse $X,$Y,$dimension_rendu,$dimension_rendu,0,1,$r_rendu,$v_rendu,$b_rendu
				-endif				

				-if {$rendu==2} 
					-polygon 3,$centre_origine_X,$centre_origine_Y,$X_precedent,$Y_precedent,$X,$Y,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))}
				-endif

				-if {$rendu==3} 
					-line $centre_origine_X,$centre_origine_Y,$X,$Y,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))}
				-endif

				-if {$rendu==4} 					
					-if {$compteur_boucle>0} 
						-line $X_precedent,$Y_precedent,$X,$Y,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))}						
					-endif
				-endif

				-if {$rendu==5} 
					-line $centre_origine_X,$centre_origine_Y,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu
				-endif

				-if {$rendu==6} 					
					-if {$compteur_boucle>0} 
						-line $X_precedent,$Y_precedent,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu						
					-endif
				-endif

				-if {$rendu==7} 
					-if {$changement_couleur==1}
						-polygon 3,$centre_origine_X,$centre_origine_Y,$X_precedent,$Y_precedent,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu
						changement_couleur=0
					-else
						-polygon 3,$centre_origine_X,$centre_origine_Y,$X_precedent,$Y_precedent,$X,$Y,1,{255-$r_rendu},{255-$v_rendu},{255-$b_rendu}
						changement_couleur=1
					-endif					
				-endif				



			X_precedent=$X
			Y_precedent=$Y		
			compteur_boucle={$compteur_boucle+1}
			theta={$theta-$increment_theta}
			
		-while {$theta>0}

	-endl -done


samj_spi_gimp_preview :
	-gimp_split_preview "-samj_spi_gimp ${1--2}",$-1		







## spirales_gmic.scm version origine du 4 fvrier 2012
##
#@gimp Spirale 2 / Spiral 2: samj_spi2_gimp, samj_spi2_gimp_preview
#@gimp : sep = separator(), note = note("<small>Spirale / Spiral</small>")
#@gimp : Centre / Center X (%) = float(50,0,100)
#@gimp : Centre / Center Y (%) = float(50,0,100)
#@gimp : Tours / Turns = int(10,1,200)
#@gimp : Increment angulaire / Angular increment = float(6,0.5,359.9)
#@gimp : Coeff. agrandissement / Expansion coefficient = float(0.05,0.02,2)
#@gimp : Type de rendu / Rendering type = choice("Points","Cercles / Circles","Polygones couleurs aleatoires / Polygons random colors","Lignes couleurs aleatoires / Lines random colors","Segments couleurs aleatoires / Segments random colors","Cercles couleurs aleatoires / Circles random colors","Points couleurs aleatoires / Points random colors","Triangles 1","Triangles 2","Triangles 1 couleurs aleatoires / random colors","Triangles 2 couleurs aleatoires / random colors","Rectangles","Rectangles couleurs aleatoires / random colors","Splines","Splines couleurs aleatoires / random colors","Lignes couleur / Lines color","Segments couleur / Segments color","Polygones 2 couleurs / Polygons 2 colors","Triangles 1 bis","Triangles 2 bis","Rectangles bis")
#@gimp : Dimension rendu / Dimensional rendering = float(2,0,400)
#@gimp : Couleur / Color = color(255,255,0)
#@gimp : Sens de rotation / Direction of rotation = int(0,0,3)
#@gimp : Alpha = bool(0)
#@gimp : Spread = float(0,0,10)
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Deform = float(0,0,25)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2012/08/24</i>.</small>")



samj_spi2_gimp :

	centre_origine_X={$1/100*w}
	centre_origine_Y={$2/100*h}
	tours=$3
	increment_theta=$4
	coeff_dim=$5
	rendu=$6
	dimension_rendu=$7
	r_rendu=$8
	v_rendu=$9
	b_rendu=$10
	sens_rotation=$11
	alpha=$12
	valeur_spread=$13
	flou=$14
	deformation=$15
	
	theta={$tours*360}
	X_precedent=$centre_origine_X
	Y_precedent=$centre_origine_Y
	compteur_boucle=0
	changement_couleur=1


	-repeat @# -l[$>]
	
	-if {$alpha==0} 	
		-remove_opacity 			
	-endif

			-do 

				-if {$sens_rotation==0} 
					X={$centre_origine_X+{$coeff_dim*round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}} 
					Y={$centre_origine_Y+{$coeff_dim*round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}} 
				-endif 

				-if {$sens_rotation==1} 
					X={$centre_origine_X+{$coeff_dim*-round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}} 
					Y={$centre_origine_Y+{$coeff_dim*-round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}} 
				-endif 

				-if {$sens_rotation==2} 
					X={$centre_origine_X+{$coeff_dim*round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}} 
					Y={$centre_origine_Y+{$coeff_dim*round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}} 
				-endif 

				-if {$sens_rotation==3} 
					X={$centre_origine_X+{$coeff_dim*-round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}} 
					Y={$centre_origine_Y+{$coeff_dim*-round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}} 
				-endif 


				## points
				-if {$rendu==0}  
					-point $X,$Y,0,1,$r_rendu,$v_rendu,$b_rendu 
				-endif 

				## cercles
				-if {$rendu==1}  
					-ellipse $X,$Y,$dimension_rendu,$dimension_rendu,0,1,$r_rendu,$v_rendu,$b_rendu 
				-endif 

				## mosaique couleurs alatoires
				-if {$rendu==2}  
					-polygon 3,$centre_origine_X,$centre_origine_Y,$X_precedent,$Y_precedent,$X,$Y,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))} 
				-endif 

				## segments vers le centre couleurs alatoires
				-if {$rendu==3}  
					-line $centre_origine_X,$centre_origine_Y,$X,$Y,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))} 
				-endif 


				## segments successifs couleurs alatoires
				-if {$rendu==4}  
					-if {$compteur_boucle>0} 
						-line $X_precedent,$Y_precedent,$X,$Y,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))} 
					-endif 
				-endif 


				## cercles couleurs alatoires
				-if {$rendu==5}  
					-ellipse $X,$Y,$dimension_rendu,$dimension_rendu,0,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))} 
				-endif 						


				## points couleurs alatoires
				-if {$rendu==6}  
					-point $X,$Y,0,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))} 
				-endif 

				## triangles 1
				-if {$rendu==7}  
					-if {$compteur_boucle>0} 
						-polygon 3,$X_precedent,$Y,$X_precedent,$Y_precedent,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu 
					-endif 						
				-endif 	

				## triangles 2
				-if {$rendu==8}  
					-if {$compteur_boucle>0} 
						-polygon 3,$X,$Y_precedent,$X_precedent,$Y_precedent,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu 
					-endif 						
				-endif 						

				## triangles 1 couleurs alatoires
				-if {$rendu==9}  
					-if {$compteur_boucle>0} 
						-polygon 3,$X_precedent,$Y,$X_precedent,$Y_precedent,$X,$Y,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))} 
					-endif 						
				-endif 	

				## triangles 2 couleurs alatoires
				-if {$rendu==10}  
					-if {$compteur_boucle>0} 
						-polygon 3,$X,$Y_precedent,$X_precedent,$Y_precedent,$X,$Y,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))} 
					-endif 						
				-endif 

				## rectangles
				-if {$rendu==11}  
					-if {$compteur_boucle>0} 
						-polygon 4,$X_precedent,$Y_precedent,$X,$Y_precedent,$X,$Y,$X_precedent,$Y,1,$r_rendu,$v_rendu,$b_rendu 
					-endif 						
				-endif 							
				
				## rectangles couleurs alatoires
				-if {$rendu==12}  
					-if {$compteur_boucle>0} 
						-polygon 4,$X_precedent,$Y_precedent,$X,$Y_precedent,$X,$Y,$X_precedent,$Y,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))} 
					-endif 						
				-endif 						


				## splines
				-if {$rendu==13}  
					-if {$compteur_boucle>0} 
						-spline $X_precedent,$Y_precedent,{$dimension_rendu*cos(pi/180*$theta)},{$dimension_rendu*sin(pi/180*$theta)},$X,$Y,{-$dimension_rendu*cos(pi/180*$theta)},{-$dimension_rendu*sin(pi/180*$theta)},1,$r_rendu,$v_rendu,$b_rendu 
					-endif 						
				-endif 

				## splines couleurs alatoires
				-if {$rendu==14}  
					-if {$compteur_boucle>0} 
						-spline $X_precedent,$Y_precedent,{$dimension_rendu*cos(pi/180*$theta)},{$dimension_rendu*sin(pi/180*$theta)},$X,$Y,{-$dimension_rendu*cos(pi/180*$theta)},{-$dimension_rendu*sin(pi/180*$theta)},1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))} 
					-endif 						
				-endif 

				-if {$rendu==15} 
					-line $centre_origine_X,$centre_origine_Y,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu
				-endif

				-if {$rendu==16} 					
					-if {$compteur_boucle>0} 
						-line $X_precedent,$Y_precedent,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu						
					-endif
				-endif

				-if {$rendu==17} 
					-if {$changement_couleur==1}
						-polygon 3,$centre_origine_X,$centre_origine_Y,$X_precedent,$Y_precedent,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu
						changement_couleur=0
					-else
						-polygon 3,$centre_origine_X,$centre_origine_Y,$X_precedent,$Y_precedent,$X,$Y,1,{255-$r_rendu},{255-$v_rendu},{255-$b_rendu}
						changement_couleur=1
					-endif					
				-endif	

				## triangles 1 bis
				-if {$rendu==18}  
					-if {$compteur_boucle>0} 
							-if {$changement_couleur==1}
								-polygon 3,$X_precedent,$Y,$X_precedent,$Y_precedent,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu
								changement_couleur=0
							-else
								-polygon 3,$X_precedent,$Y,$X_precedent,$Y_precedent,$X,$Y,1,{255-$r_rendu},{255-$v_rendu},{255-$b_rendu}
								changement_couleur=1
							-endif							 
					-endif 						
				-endif 	

				## triangles 2 bis
				-if {$rendu==19}  
					-if {$compteur_boucle>0} 
							-if {$changement_couleur==1}
								-polygon 3,$X,$Y_precedent,$X_precedent,$Y_precedent,$X,$Y,1,$r_rendu,$v_rendu,$b_rendu 
								changement_couleur=0
							-else
								-polygon 3,$X,$Y_precedent,$X_precedent,$Y_precedent,$X,$Y,1,{255-$r_rendu},{255-$v_rendu},{255-$b_rendu}
								changement_couleur=1
							-endif
					-endif 						
				-endif

				## rectangles bis
				-if {$rendu==20}  
					-if {$compteur_boucle>0} 
							-if {$changement_couleur==1}
								-polygon 4,$X_precedent,$Y_precedent,$X,$Y_precedent,$X,$Y,$X_precedent,$Y,1,$r_rendu,$v_rendu,$b_rendu
								changement_couleur=0
							-else
								-polygon 4,$X_precedent,$Y_precedent,$X,$Y_precedent,$X,$Y,$X_precedent,$Y,1,{255-$r_rendu},{255-$v_rendu},{255-$b_rendu}
								changement_couleur=1
							-endif
					-endif 						
				-endif 				


				X_precedent=$X 
				Y_precedent=$Y 
				compteur_boucle={$compteur_boucle+1} 
				theta={$theta-$increment_theta} 

			-while {$theta>0} 

		-spread $valeur_spread

		-blur $flou

		-deform $deformation

	-endl -done


samj_spi2_gimp_preview :
	-gimp_split_preview "-samj_spi2_gimp ${1--2}",$-1	




						################################################################
						##                                                            ##
						##      FIN ensemble Spirales pleines  samj_spi(x)_gimp       ##
						##                                                            ##
						################################################################





						################################################################
						##                                                            ##
						##        Ensemble toiles / Stars Figures gomtriques       ##
						##                                                            ##
						################################################################

##	Ides gnrales
##	Les toiles sont construites autour de 2 cercles, un cercle extrieur pour les sommets, un cercle intrieur pour le raccord des bras. Le nombre de sommets est 2 ou plus.
##  Une fonction permer de crer une toile (samj_dessiner_une_etoile). Une autre fonction rpartira des toiles sur une image.						


#********** Dessiner une toile **********
##
##                                       Dessiner une toile version G'MIC le 27 aot 2012
##
##
## modification 20121218 , utilisation de la fonction star_pattern_samj (pour crer une toile) + ajout mlanges
## modification 20121227  abandon du "preview" avec : samj_dessiner_une_etoile(1)

#@gimp Dessiner une etoile / Draw a star : samj_dessiner_une_etoile, samj_dessiner_une_etoile(1)
#@gimp : sep = separator(), note = note("<small>\303\251toiles / stars</small>")
#@gimp : Nombre de sommets = int(5,2,720)
#@gimp : Position X (%) = float(50,0,100)
#@gimp : Position Y (%) = float(50,0,100)
#@gimp : Angle inclinaison = float(0,0,180)
#@gimp : Rayon cercle ext\303\251rieur / Outer circle radius = int(150,16,2000)
#@gimp : Rayon cercle int\303\251rieur / Inner circle radius (%) = float(39,0,100)
#@gimp : Excentricit\303\251 / Eccentricity (%) = float(0,0,100)
#@gimp : Angle excentricit\303\251 / Eccentricity angle = float(0,0,360)
#@gimp : Remplir pointes / Fill = bool(1)
#@gimp : Couleur pointes = color(255,255,0)
#@gimp : Contour pointes = bool(0)
#@gimp : Couleur contour pointes = color(0,0,255)
#@gimp : Variation de couleur / Color variation = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : sep = separator(), note = note("<small>cercles / circles</small>")
#@gimp : Remplir cercle int\303\251rieur / Fill = bool(1)
#@gimp : Couleur cercle int\303\251rieur = color(255,255,0)
#@gimp : Contour cercle int\303\251rieur = bool(0)
#@gimp : Couleur contour cercle int\303\251rieur = color(0,0,255)
#@gimp : Remplir cercle ext\303\251rieur / Fill = bool(0)
#@gimp : Couleur cercle ext\303\251rieur = color(255,255,255)
#@gimp : Contour cercle ext\303\251rieur = bool(0)
#@gimp : Couleur contour cercle ext\303\251rieur = color(0,0,0)
#@gimp : sep = separator(), note = note("<small>Transparence / Transparency</small>")
#@gimp : Alpha = bool(1)
#@gimp : Transparence des couleurs / Color transparency = int(255,0,255)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(3,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")



samj_dessiner_une_etoile:

####### Dclaration des variables


	Position_X={{$2/100*{w+$5}}-$5}
	Position_Y={{$3/100*{h+$5}}-$5}

	alpha=$34

	Flou_etoile=$36
	Spread_etoile=$37
	Deform_etoile=$38
	
	blend=$39
	opacite=$40


	# Variables fonction -star_pattern_samj		

			Largeur_en_pixels=$5 			## ex Rayon_cercle_exterieur

	Nombre_de_sommets=$1
			Pourcentage_Rayon_Interieur=$6	## ex Rayon_cercle_interieur

	Angle_inclinaison=$4
	Pourcentage_excentricite=$7
	Angle_excentricite=$8
	
	Remplir_pointes=$9
	R_pointes_plein=$10
	V_pointes_plein=$11
	B_pointes_plein=$12
				A_pointes_plein=$35			## ex Transparence_des_couleurs
	
	Contour_pointes=$13
	R_pointes_contour=$14
	V_pointes_contour=$15
	B_pointes_contour=$16
			A_pointes_contour=$35			## ex Transparence_des_couleurs

	Remplir_cercle_interieur=$18
	R_CI_plein=$19
	V_CI_plein=$20
	B_CI_plein=$21
			A_CI_plein=$35					## ex Transparence_des_couleurs

	Contour_cercle_interieur=$22
	R_CI_contour=$23
	V_CI_contour=$24
	B_CI_contour=$25
			A_CI_contour=$35				## ex Transparence_des_couleurs


	Remplir_cercle_exterieur=$26
	R_CE_plein=$27
	V_CE_plein=$28
	B_CE_plein=$29
			A_CE_plein=$35					## ex Transparence_des_couleurs

	Contour_cercle_exterieur=$30
	R_CE_contour=$31
	V_CE_contour=$32
	B_CE_contour=$33
			A_CE_contour=$35				## ex Transparence_des_couleurs

	Variation_de_couleur=$17	


####### Ligne de commandes		

		-to_rgba

		{w},{h},1,4		## crer une image transparente aux mmes dimensions que l'image d'origine

		-star_pattern_samj $Largeur_en_pixels,$Nombre_de_sommets,$Pourcentage_Rayon_Interieur,$Angle_inclinaison,$Pourcentage_excentricite,$Angle_excentricite,$Remplir_pointes,$R_pointes_plein,$V_pointes_plein,$B_pointes_plein,$A_pointes_plein,$Contour_pointes,$R_pointes_contour,$V_pointes_contour,$B_pointes_contour,$A_pointes_contour,$Remplir_cercle_interieur,$R_CI_plein,$V_CI_plein,$B_CI_plein,$A_CI_plein,$Contour_cercle_interieur,$R_CI_contour,$V_CI_contour,$B_CI_contour,$A_CI_contour,$Remplir_cercle_exterieur,$R_CE_plein,$V_CE_plein,$B_CE_plein,$A_CE_plein,$Contour_cercle_exterieur,$R_CE_contour,$V_CE_contour,$B_CE_contour,$A_CE_contour,$Variation_de_couleur           

		-image[-2] [-1],$Position_X,$Position_Y		## inclure l'toile dans l'image transparente

		-rm[-1]

		-blur[-1] $Flou_etoile

		-spread[-1] $Spread_etoile

		-deform[-1] $Deform_etoile

		-if {$blend==0} -reverse[-1,-2] -endif
		-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
		-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
		-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
		-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
		-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
		-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
		-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
		-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
		-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
		-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
		-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
		-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
		-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
		-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
		-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
		-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
		-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
		-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
		-if {$blend==19} -compose_1530_median[-1,-2] -endif
		-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
		-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
		-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
		-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
		-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
		-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
		-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
		-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
		-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
		-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
		-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif





						################################################################
						##                                                            ##
						##      FIN ensemble toiles / Stars Figures gomtriques     ##
						##                                                            ##
						################################################################








						################################################################
						##                                                            ##
						##          Ensemble Polygones /  Figures gomtriques        ##
						##                                                            ##
						################################################################

##	Ide gnrale
##	Les polygones sont construits autour de 2 cercles concentriques.
					

						
#********** Dessiner un polygone **********
##
## Dessiner un polygone version G'MIC le 29 aot 2012
##
##


#@gimp Dessiner un polygone / Draw a polygon : samj_dessiner_un_polygone, samj_dessiner_un_polygone_preview
#@gimp : sep = separator(), note = note("<small>Polygone / Polygone</small>")
#@gimp : Nombre de c\303\264t\303\251s / Number of sides = int(5,3,90)
#@gimp : Position X (%) = float(50,0,100)
#@gimp : Position Y (%) = float(50,0,100)
#@gimp : Angle inclinaison = float(0,0,120)
#@gimp : Rayon cercle circonscrit / Circumcircle radius = int(150,16,2000)
#@gimp : Rayon cercle int\303\251rieur / Inner circle radius (%) = float(50,0,100)
#@gimp : Remplir polygone ext\303\251rieur / Fill = bool(1)
#@gimp : Couleur polygone ext\303\251rieur = color(255,255,0)
#@gimp : Contour polygone ext\303\251rieur = bool(0)
#@gimp : Couleur contour polygone ext\303\251rieur = color(0,0,0)
#@gimp : Remplir polygone int\303\251rieur / Fill = bool(1)
#@gimp : Couleur polygone int\303\251rieur = color(0,0,255)
#@gimp : Contour polygone int\303\251rieur = bool(0)
#@gimp : Couleur contour polygone int\303\251rieur = color(0,255,0)
#@gimp : Variation de couleur / Color variation = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : sep = separator(), note = note("<small>cercles / circles</small>")
#@gimp : Remplir cercle int\303\251rieur / Fill = bool(0)
#@gimp : Couleur cercle int\303\251rieur = color(127,127,127)
#@gimp : Contour cercle int\303\251rieur = bool(0)
#@gimp : Couleur contour cercle int\303\251rieur = color(0,0,0)
#@gimp : Remplir cercle ext\303\251rieur / Fill = bool(0)
#@gimp : Couleur cercle ext\303\251rieur = color(255,255,255)
#@gimp : Contour cercle ext\303\251rieur = bool(0)
#@gimp : Couleur contour cercle ext\303\251rieur = color(0,0,0)
#@gimp : sep = separator(), note = note("<small>Transparence / Transparency</small>")
#@gimp : Alpha = bool(1)
#@gimp : Transparence des couleurs / Color transparency = int(255,0,255)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2012/09/01</i>.</small>")



samj_dessiner_un_polygone:


		Nombre_de_cotes=$1
		X_centre_cercle_circonscrit={$2/100*w}
		Y_centre_cercle_circonscrit={$3/100*h}
		Angle_inclinaison=$4
		Rayon_cercle_circonscrit=$5
		Rayon_cercle_interieur={round({$Rayon_cercle_circonscrit/100*$6})}

		Remplir_polygone_exterieur=$7

		## ATTENTION variables $8,$9,$10 utilises + loin dans le script	
		R_Couleur_polygone_exterieur=$8
		V_Couleur_polygone_exterieur=$9
		B_Couleur_polygone_exterieur=$10

		Contour_polygone_exterieur=$11
		R_Couleur_contour_polygone_exterieur=$12
		V_Couleur_contour_polygone_exterieur=$13
		B_Couleur_contour_polygone_exterieur=$14

		Remplir_polygone_interieur=$15

		## ATTENTION variables $16,$17,$18 utilises + loin dans le script	
		R_Couleur_polygone_interieur=$16
		V_Couleur_polygone_interieur=$17
		B_Couleur_polygone_interieur=$18

		Contour_polygone_interieur=$19
		R_Couleur_contour_polygone_interieur=$20
		V_Couleur_contour_polygone_interieur=$21
		B_Couleur_contour_polygone_interieur=$22

		Variation_de_couleur=$23		

		Remplir_cercle_interieur=$24

		R_CI_plein=$25
		V_CI_plein=$26
		B_CI_plein=$27

		Contour_cercle_interieur=$28

		R_CI_contour=$29
		V_CI_contour=$30
		B_CI_contour=$31

		Remplir_cercle_exterieur=$32

		R_CE_plein=$33
		V_CE_plein=$34
		B_CE_plein=$35

		Contour_cercle_exterieur=$36

		R_CE_contour=$37
		V_CE_contour=$38
		B_CE_contour=$39

		alpha=$40
		Transparence_des_couleurs=$41
		Flou_polygone=$42
		Spread_polygone=$43
		Deform_polygone=$44

		-if {$alpha==0} 	
			-remove_opacity 			
		-endif



		## Cercle circonscrit ##		

		-if {$Remplir_cercle_exterieur==1} 
			## tracer le cercle circonscrit plein
			-ellipse $X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$Rayon_cercle_circonscrit,$Rayon_cercle_circonscrit,0,1,$R_CE_plein,$V_CE_plein,$B_CE_plein,$Transparence_des_couleurs
		-endif


		## Cercle circonscrit ##
		
		-if {$Contour_cercle_exterieur==1} 		
			## tracer le cercle circonscrit contour	
			-ellipse $X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$Rayon_cercle_circonscrit,$Rayon_cercle_circonscrit,0,1,0xFFFFFF,$R_CE_contour,$V_CE_contour,$B_CE_contour,$Transparence_des_couleurs
		-endif
		

		## Polygones ##

		Increment_angle={360/$Nombre_de_cotes}

		Nb_boucle=$Nombre_de_cotes

			-do

				## remplir couleur unie
				-if {$Variation_de_couleur==0}

						## point extrieur ##				
						X_point_exterieur={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{cos({pi/180*{$Increment_angle+$Angle_inclinaison+{360/$Nombre_de_cotes}}})}})}}
						Y_point_exterieur={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{sin({pi/180*{$Increment_angle+$Angle_inclinaison+{360/$Nombre_de_cotes}}})}})}}

						## point intrieur ##				
						X_point_interieur={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{cos({pi/180*{$Increment_angle+$Angle_inclinaison+{360/$Nombre_de_cotes}}})}})}}
						Y_point_interieur={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{sin({pi/180*{$Increment_angle+$Angle_inclinaison+{360/$Nombre_de_cotes}}})}})}}
						
						## incrmenter les variables de positionnement des points
						-if {$Nb_boucle==$Nombre_de_cotes} 
								Points_polygone_exterieur=$X_point_exterieur,$Y_point_exterieur
								Points_polygone_interieur=$X_point_interieur,$Y_point_interieur				
						-else
								Points_polygone_exterieur=$Points_polygone_exterieur,$X_point_exterieur,$Y_point_exterieur
								Points_polygone_interieur=$Points_polygone_interieur,$X_point_interieur,$Y_point_interieur				
						-endif

						## tracer le polygone  la fin
						-if {$Nb_boucle==1} 

								## Tracer les polygones + cercle intrieur

								-if {$Remplir_polygone_exterieur==1} 
									## plein
									-polygon $Nombre_de_cotes,$Points_polygone_exterieur,1,$R_Couleur_polygone_exterieur,$V_Couleur_polygone_exterieur,$B_Couleur_polygone_exterieur,$Transparence_des_couleurs
								-endif

								-if {$Contour_polygone_exterieur==1} 				
									## contour
									-polygon $Nombre_de_cotes,$Points_polygone_exterieur,1,0xFFFFFF,$R_Couleur_contour_polygone_exterieur,$V_Couleur_contour_polygone_exterieur,$B_Couleur_contour_polygone_exterieur,$Transparence_des_couleurs				
								-endif						

								## Cercle intrieur ##

								-if {$Remplir_cercle_interieur==1} 
									## tracer le cercle intrieur plein
									-ellipse $X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$Rayon_cercle_interieur,$Rayon_cercle_interieur,0,1,$R_CI_plein,$V_CI_plein,$B_CI_plein,$Transparence_des_couleurs
								-endif

								## Cercle intrieur ##

								
								-if {$Contour_cercle_interieur==1} 		
									## tracer le cercle intrieur contour	
									-ellipse $X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$Rayon_cercle_interieur,$Rayon_cercle_interieur,0,1,0xFFFFFF,$R_CI_contour,$V_CI_contour,$B_CI_contour,$Transparence_des_couleurs
								-endif



								-if {$Remplir_polygone_interieur==1} 
									## plein
									-polygon $Nombre_de_cotes,$Points_polygone_interieur,1,$R_Couleur_polygone_interieur,$V_Couleur_polygone_interieur,$B_Couleur_polygone_interieur,$Transparence_des_couleurs

								-endif

								-if {$Contour_polygone_interieur==1} 				
									## contour
									-polygon $Nombre_de_cotes,$Points_polygone_interieur,1,0xFFFFFF,$R_Couleur_contour_polygone_interieur,$V_Couleur_contour_polygone_interieur,$B_Couleur_contour_polygone_interieur,$Transparence_des_couleurs				
								-endif

						-endif

				-endif



				## Dcomposition en triangles
				## remplir couleurs alatoires
				-if {$Variation_de_couleur==1}

						## triangle 2 points extrieurs ##				
						X_point_exterieur_1={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{cos({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_cotes}}})}})}}
						Y_point_exterieur_1={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{sin({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_cotes}}})}})}}
						X_point_exterieur_2={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{cos({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_cotes}}})}})}}
						Y_point_exterieur_2={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{sin({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_cotes}}})}})}}
								## vrification points
								##-ellipse $X_point_exterieur_1,$Y_point_exterieur_1,5,5,0,1,127,127,127
								##-ellipse $X_point_exterieur_2,$Y_point_exterieur_2,5,5,0,1,127,127,127				


						-if {$Remplir_polygone_exterieur==1} 
							## plein
							-polygon 3,$X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$X_point_exterieur_1,$Y_point_exterieur_1,$X_point_exterieur_2,$Y_point_exterieur_2,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))},$Transparence_des_couleurs
						-endif

						-if {$Contour_polygone_exterieur==1} 				
							## contour
							-polygon 3,$X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$X_point_exterieur_1,$Y_point_exterieur_1,$X_point_exterieur_2,$Y_point_exterieur_2,1,0xFFFFFF,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))},$Transparence_des_couleurs				
						-endif				


						## triangle 2 points intrieurs ##				
						X_point_interieur_1={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{cos({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_cotes}}})}})}}
						Y_point_interieur_1={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{sin({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_cotes}}})}})}}
						X_point_interieur_2={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{cos({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_cotes}}})}})}}
						Y_point_interieur_2={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{sin({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_cotes}}})}})}}
								## vrification points
								##-ellipse $X_point_interieur_1,$Y_point_interieur_1,5,5,0,1,127,127,127
								##-ellipse $X_point_interieur_2,$Y_point_interieur_2,5,5,0,1,127,127,127				


						-if {$Remplir_polygone_interieur==1} 
							## plein
							-polygon 3,$X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))},$Transparence_des_couleurs

						-endif

						-if {$Contour_polygone_interieur==1} 				
							## contour
							-polygon 3,$X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,0xFFFFFF,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))},$Transparence_des_couleurs				
						-endif

						## tracer le cercle intrieur  la fin
						-if {$Nb_boucle==1}

								-if {$Remplir_cercle_interieur==1} 
									## tracer le cercle intrieur plein
									-ellipse $X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$Rayon_cercle_interieur,$Rayon_cercle_interieur,0,1,$R_CI_plein,$V_CI_plein,$B_CI_plein,$Transparence_des_couleurs
								-endif

								## Cercle intrieur ##


								-if {$Contour_cercle_interieur==1} 		
									## tracer le cercle intrieur contour	
									-ellipse $X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$Rayon_cercle_interieur,$Rayon_cercle_interieur,0,1,0xFFFFFF,$R_CI_contour,$V_CI_contour,$B_CI_contour,$Transparence_des_couleurs
								-endif

						-endif
						

				-endif


				## Dcomposition en triangles
				## couleurs nuances
				-if {$Variation_de_couleur>1}

						Valeur_variation_couleur=16

						-if {$Variation_de_couleur==3}
							Valeur_variation_couleur=32
						-endif

						-if {$Variation_de_couleur==4}
							Valeur_variation_couleur=64
						-endif						

						R_Couleur_polygone_exterieur={round({$8+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$R_Couleur_polygone_exterieur>255}
										R_Couleur_polygone_exterieur=$8
								-endif
								-if {$R_Couleur_polygone_exterieur<0}
										R_Couleur_polygone_exterieur=$8
								-endif	

						V_Couleur_polygone_exterieur={round({$9+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$V_Couleur_polygone_exterieur>255}
										V_Couleur_polygone_exterieur=$9
								-endif
								-if {$V_Couleur_polygone_exterieur<0}
										V_Couleur_polygone_exterieur=$9
								-endif

						B_Couleur_polygone_exterieur={round({$10+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$B_Couleur_polygone_exterieur>255}
										B_Couleur_polygone_exterieur=$10
								-endif
								-if {$B_Couleur_polygone_exterieur<0}
										B_Couleur_polygone_exterieur=$10
								-endif

						R_Couleur_polygone_interieur={round({$16+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$R_Couleur_polygone_interieur>255}
										R_Couleur_polygone_interieur=$16
								-endif
								-if {$R_Couleur_polygone_interieur<0}
										R_Couleur_polygone_interieur=$16
								-endif

						V_Couleur_polygone_interieur={round({$17+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$V_Couleur_polygone_interieur>255}
										V_Couleur_polygone_interieur=$17
								-endif
								-if {$V_Couleur_polygone_interieur<0}
										V_Couleur_polygone_interieur=$17
								-endif								

						B_Couleur_polygone_interieur={round({$18+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$B_Couleur_polygone_interieur>255}
										B_Couleur_polygone_interieur=$18
								-endif
								-if {$B_Couleur_polygone_interieur<0}
										B_Couleur_polygone_interieur=$18
								-endif



						## triangle 2 points extrieurs ##				
						X_point_exterieur_1={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{cos({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_cotes}}})}})}}
						Y_point_exterieur_1={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{sin({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_cotes}}})}})}}
						X_point_exterieur_2={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{cos({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_cotes}}})}})}}
						Y_point_exterieur_2={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_circonscrit*{sin({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_cotes}}})}})}}
								## vrification points
								##-ellipse $X_point_exterieur_1,$Y_point_exterieur_1,5,5,0,1,127,127,127
								##-ellipse $X_point_exterieur_2,$Y_point_exterieur_2,5,5,0,1,127,127,127				


						-if {$Remplir_polygone_exterieur==1} 
							## plein
							-polygon 3,$X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$X_point_exterieur_1,$Y_point_exterieur_1,$X_point_exterieur_2,$Y_point_exterieur_2,1,$R_Couleur_polygone_exterieur,$V_Couleur_polygone_exterieur,$B_Couleur_polygone_exterieur,$Transparence_des_couleurs
						-endif

						-if {$Contour_polygone_exterieur==1} 				
							## contour
							-polygon 3,$X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$X_point_exterieur_1,$Y_point_exterieur_1,$X_point_exterieur_2,$Y_point_exterieur_2,1,0xFFFFFF,$R_Couleur_contour_polygone_exterieur,$V_Couleur_contour_polygone_exterieur,$B_Couleur_contour_polygone_exterieur,$Transparence_des_couleurs				
						-endif				


						## triangle 2 points intrieurs ##				
						X_point_interieur_1={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{cos({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_cotes}}})}})}}
						Y_point_interieur_1={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{sin({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_cotes}}})}})}}
						X_point_interieur_2={$X_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{cos({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_cotes}}})}})}}
						Y_point_interieur_2={$Y_centre_cercle_circonscrit+{round({$Rayon_cercle_interieur*{sin({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_cotes}}})}})}}
								## vrification points
								##-ellipse $X_point_interieur_1,$Y_point_interieur_1,5,5,0,1,127,127,127
								##-ellipse $X_point_interieur_2,$Y_point_interieur_2,5,5,0,1,127,127,127				


						-if {$Remplir_polygone_interieur==1} 
							## plein
							-polygon 3,$X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,$R_Couleur_polygone_interieur,$V_Couleur_polygone_interieur,$B_Couleur_polygone_interieur,$Transparence_des_couleurs

						-endif

						-if {$Contour_polygone_interieur==1} 				
							## contour
							-polygon 3,$X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,0xFFFFFF,$R_Couleur_contour_polygone_interieur,$V_Couleur_contour_polygone_interieur,$B_Couleur_contour_polygone_interieur,$Transparence_des_couleurs				
						-endif

						## tracer le cercle intrieur  la fin
						-if {$Nb_boucle==1}

								-if {$Remplir_cercle_interieur==1} 
									## tracer le cercle intrieur plein
									-ellipse $X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$Rayon_cercle_interieur,$Rayon_cercle_interieur,0,1,$R_CI_plein,$V_CI_plein,$B_CI_plein,$Transparence_des_couleurs
								-endif

								## Cercle intrieur ##


								-if {$Contour_cercle_interieur==1} 		
									## tracer le cercle intrieur contour	
									-ellipse $X_centre_cercle_circonscrit,$Y_centre_cercle_circonscrit,$Rayon_cercle_interieur,$Rayon_cercle_interieur,0,1,0xFFFFFF,$R_CI_contour,$V_CI_contour,$B_CI_contour,$Transparence_des_couleurs
								-endif

						-endif


				-endif


				Increment_angle={$Increment_angle+{360/$Nombre_de_cotes}}

				Nb_boucle={$Nb_boucle-1}

			-while {$Nb_boucle>0}


		-blur $Flou_polygone

		-spread $Spread_polygone

		-deform $Deform_polygone							

samj_dessiner_un_polygone_preview :
	-gimp_split_preview "-samj_dessiner_un_polygone ${1--2}",$-1





						################################################################
						##                                                            ##
						##       FIN  Ensemble Polygones /  Figures gomtriques      ##
						##                                                            ##
						################################################################







						################################################################
						##                                                            ##
						##           Ensemble Fleurs /  Figures gomtriques          ##
						##                                                            ##
						################################################################



#********** Dessiner une fleur **********
##
##	Dessiner une fleur version G'MIC le 31 aot 2012
##	modification 20121219 , utilisation de la fonction -flower_pattern_samj (pour crer une fleur) + ajout mlanges
##	modification 201212127  abandon du "preview" avec : samj_dessiner_une_fleur(1)

#@gimp Dessiner une fleur / Draw a flower : samj_dessiner_une_fleur, samj_dessiner_une_fleur(1)
#@gimp : sep = separator(), note = note("<small>Fleur - P\303\251tales / Flower - Petals</small>")
#@gimp : Nombre de p\303\251tales / Number of petals = int(30,2,360)
#@gimp : Position X (%) = float(50,0,100)
#@gimp : Position Y (%) = float(50,0,100)
#@gimp : Angle inclinaison = float(0,0,180)
#@gimp : 'Rayon' de la fleur / Flower 'radius' = int(400,16,2000)
#@gimp : Rayon cercle 1 / Radius circle 1 (%) = float(40,0,100)
#@gimp : Rayon cercle 2 / Radius circle 2 (%) = float(36,0,100)
#@gimp : Longueur p\303\251tales / Length petals (%) = float(50,0,100)
#@gimp : Largeur p\303\251tales / Width petals (%) = float(10,0,100)
#@gimp : Espacement du centre / Center spacing (%) = float(40,1,100)
#@gimp : Variation longueur / Length variation (%) = int(0,0,15)
#@gimp : Variation \303\251paisseur / Thickness variation (%) = int(0,0,100)
#@gimp : Variation angle (Deg.) = int(0,0,5)
#@gimp : Remplir p\303\251tales / Fill = bool(1)
#@gimp : Couleur p\303\251tales = color(255,255,0)
#@gimp : Variation de couleur / Color variation = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Contour p\303\251tales = bool(1)
#@gimp : Couleur contour p\303\251tales = color(200,100,50)
#@gimp : sep = separator(), note = note("<small>cercles / circles</small>")
#@gimp : Remplir cercle int\303\251rieur / Fill = bool(1)
#@gimp : Couleur cercle int\303\251rieur = color(100,100,255)
#@gimp : Contour cercle int\303\251rieur = bool(1)
#@gimp : Couleur contour cercle int\303\251rieur = color(255,255,0)
#@gimp : Remplir cercle ext\303\251rieur / Fill = bool(1)
#@gimp : Couleur cercle ext\303\251rieur = color(255,255,255)
#@gimp : Contour cercle ext\303\251rieur = bool(1)
#@gimp : Couleur contour cercle ext\303\251rieur = color(100,100,255)
#@gimp : sep = separator(), note = note("<small>Transparence / Transparency</small>")
#@gimp : Alpha = bool(1)
#@gimp : Transparence des couleurs / Color transparency = int(255,0,255)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(3,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")


						
samj_dessiner_une_fleur:


	
	## variables

	X_centre_cercles={$2/100*w}
	Y_centre_cercles={$3/100*h}	

	alpha=$39

	Flou_fleur=$41
	Spread_fleur=$42
	Deform_fleur=$43	

	blend=$44
	opacite=$45	
		
	## variables fonction -flower_pattern_samj

	Largeur_en_pixels={2*$5}
	
	Nombre_de_petales=$1

	Angle_inclinaison=$4

	Rayon_grand_cercle=$6
	Rayon_petit_cercle=$7
	Longueur_petales=$8
	Largeur_petales=$9
	Espacement_du_centre=$10
	Variation_longueur=$11
	Variation_epaisseur=$12
	Variation_angle=$13
	
	Remplir_petales=$14
	R_Couleur_petales=$15
	V_Couleur_petales=$16
	B_Couleur_petales=$17
	A_Couleur_petales=$40

	Contour_petales=$19
	R_Couleur_contour_petales=$20
	V_Couleur_contour_petales=$21		
	B_Couleur_contour_petales=$22
	A_Couleur_contour_petales=$40
	
	Remplir_cercle_interieur=$23	
	R_CI_plein=$24
	V_CI_plein=$25
	B_CI_plein=$26
	A_CI_plein=$40

	Contour_cercle_interieur=$27
	R_CI_contour=$28
	V_CI_contour=$29
	B_CI_contour=$30
	A_CI_contour=$40
	
	Remplir_cercle_exterieur=$31
	R_CE_plein=$32
	V_CE_plein=$33
	B_CE_plein=$34
	A_CE_plein=$40

	Contour_cercle_exterieur=$35
	R_CE_contour=$36
	V_CE_contour=$37
	B_CE_contour=$38
	A_CE_contour=$40

	Variation_de_couleur=$18

	##

	-to_rgba

	{w},{h},1,4		## crer une image transparente aux mmes dimensions que l'image d'origine

	-flower_pattern_samj $Largeur_en_pixels,$Nombre_de_petales,$Angle_inclinaison,$Rayon_grand_cercle,$Rayon_petit_cercle,$Longueur_petales,$Largeur_petales,$Espacement_du_centre,$Variation_longueur,$Variation_epaisseur,$Variation_angle,$Remplir_petales,$R_Couleur_petales,$V_Couleur_petales,$B_Couleur_petales,$A_Couleur_petales,$Contour_petales,$R_Couleur_contour_petales,$V_Couleur_contour_petales,$B_Couleur_contour_petales,$A_Couleur_contour_petales,$Remplir_cercle_interieur,$R_CI_plein,$V_CI_plein,$B_CI_plein,$A_CI_plein,$Contour_cercle_interieur,$R_CI_contour,$V_CI_contour,$B_CI_contour,$A_CI_contour,$Remplir_cercle_exterieur,$R_CE_plein,$V_CE_plein,$B_CE_plein,$A_CE_plein,$Contour_cercle_exterieur,$R_CE_contour,$V_CE_contour,$B_CE_contour,$A_CE_contour,$Variation_de_couleur

	-autocrop[-1]

	X_centre_cercles={$X_centre_cercles-{w/2}}
	Y_centre_cercles={$Y_centre_cercles-{h/2}}	
	
	-image[-2] [-1],$X_centre_cercles,$Y_centre_cercles		## inclure la fleur dans l'image transparente
	
	-rm[-1]	

	-blur[-1] $Flou_fleur

	-spread[-1] $Spread_fleur

	-deform[-1] $Deform_fleur

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif



#********** FIN  Dessiner une fleur *****










#********** Dessiner une fleur 2 ********	
##
##	Dessiner une fleur version 2 G'MIC le 3 septembre 2012
##	version 20121222 , utilisation de la fonction -flower_spiral_pattern_samj (pour crer une fleur  partir d'une spirale) + ajout mlanges	
##	version 20121227  abandon du "preview" avec : samj_dessiner_une_fleur_2(1)
##
#@gimp Dessiner une fleur 2 / Draw a flower 2: samj_dessiner_une_fleur_2, samj_dessiner_une_fleur_2(1)
#@gimp : sep = separator(), note = note("<small>Spirale / Spiral</small>")
#@gimp : Centre / Center X (%) = float(50,0,100)
#@gimp : Centre / Center Y (%) = float(50,0,100)
#@gimp : Tours / Turns = int(10,1,30)
#@gimp : Increment angulaire / Angular increment = float(16.08,1,359.9)
#@gimp : Coeff. agrandissement / Expansion coefficient = float(2.5,1,10)
#@gimp : Sens de rotation / Direction of rotation = choice(0,"Int. Mode 1","Ext. Mode 1","Int. Mode 2","Ext. Mode 2","Int. Mode 3","Ext. Mode 3","Int. Mode 4","Ext. Mode 4")
#@gimp : sep = separator(), note = note("<small>Fleur - P\303\251tales / Flower - Petals</small>")
#@gimp : Longueur p\303\251tales / Length petals = float(30,1,100)
#@gimp : Largeur p\303\251tales / Width petals (%) = float(50,1,100)
#@gimp : Espacement du centre / Center spacing = int(15,0,100)
#@gimp : Variation longueur / Length variation (%) = int(0,0,100)
#@gimp : Variation \303\251paisseur / Thickness variation (%) = int(0,0,100)
#@gimp : Variation angle (Deg.) = int(0,0,180)
#@gimp : Agrandissement p\303\251tales / Expansion petals = float(0.1,0.1,0.5)
#@gimp : Remplir p\303\251tales / Fill = bool(1)
#@gimp : Couleur p\303\251tales = color(230,236,22,255)
#@gimp : Contour p\303\251tales = bool(1)
#@gimp : Couleur contour p\303\251tales = color(200,100,50,255)
#@gimp : sep = separator(), note = note("<small>cercles / circles</small>")
#@gimp : Remplir cercle int\303\251rieur / Fill = bool(1)
#@gimp : Couleur cercle int\303\251rieur = color(224,208,36,255)
#@gimp : Contour cercle int\303\251rieur = bool(1)
#@gimp : Couleur contour cercle int\303\251rieur = color(200,100,50,255)
#@gimp : Remplir cercle ext\303\251rieur / Fill = bool(1)
#@gimp : Couleur cercle ext\303\251rieur = color(224,208,36,255)
#@gimp : Contour cercle ext\303\251rieur = bool(1)
#@gimp : Couleur contour cercle ext\303\251rieur = color(200,100,50,255)
#@gimp : Rayon cercle 1 / Radius circle 1 = int(40,0,1000)
#@gimp : Rayon cercle 2 / Radius circle 2 (%) = float(36,0,100)
#@gimp : Variation de couleur / Color variation = choice(1,"Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")



samj_dessiner_une_fleur_2 :

	## Variables
		centre_origine_X={$1/100*w}
	centre_origine_Y={$2/100*h}	

	# Variables fonction -flower_spiral_pattern_samj
		# spirale
	tours=$3
	increment_theta=$4
	coeff_dim=$5
	sens_rotation=$6

		# ptales
	Longueur_petales=$7
	Largeur_petales=$8
	Espacement_du_centre=$9
	Variation_longueur=$10
	Variation_epaisseur=$11
	Variation_angle=$12
	Agrandissement_petales=$13

	Remplir_petales=$14
	R_Couleur_petales=$15
	V_Couleur_petales=$16
	B_Couleur_petales=$17
	A_Couleur_petales=$18

	Contour_petales=$19
	R_Couleur_contour_petales=$20
	V_Couleur_contour_petales=$21
	B_Couleur_contour_petales=$22
	A_Couleur_contour_petales=$23	

	Remplir_cercle_interieur=$24
	R_CI_plein=$25
	V_CI_plein=$26
	B_CI_plein=$27
	A_CI_plein=$28

	Contour_cercle_interieur=$29
	R_CI_contour=$30
	V_CI_contour=$31
	B_CI_contour=$32
	A_CI_contour=$33

	Remplir_cercle_exterieur=$34
	R_CE_plein=$35
	V_CE_plein=$36
	B_CE_plein=$37
	A_CE_plein=$38

	Contour_cercle_exterieur=$39
	R_CE_contour=$40
	V_CE_contour=$41
	B_CE_contour=$42
	A_CE_contour=$43

	Rayon_grand_cercle=$44
	Rayon_petit_cercle=$45

	Variation_de_couleur=$46

	# Variables divers	

	Flou_fleur_2=$47	
	Spread_fleur_2=$48	
	Deform_fleur_2=$49	

	blend=$50
	opacite=$51

	##

	-to_rgba[-1]

	{w},{h},1,4		## crer une image transparente aux mmes dimensions que l'image d'origine

	-flower_spiral_pattern_samj $tours,$increment_theta,$coeff_dim,$sens_rotation,$Longueur_petales,$Largeur_petales,$Espacement_du_centre,$Variation_longueur,$Variation_epaisseur,$Variation_angle,$Agrandissement_petales,$Remplir_petales,$R_Couleur_petales,$V_Couleur_petales,$B_Couleur_petales,$A_Couleur_petales,$Contour_petales,$R_Couleur_contour_petales,$V_Couleur_contour_petales,$B_Couleur_contour_petales,$A_Couleur_contour_petales,$Remplir_cercle_interieur,$R_CI_plein,$V_CI_plein,$B_CI_plein,$A_CI_plein,$Contour_cercle_interieur,$R_CI_contour,$V_CI_contour,$B_CI_contour,$A_CI_contour,$Remplir_cercle_exterieur,$R_CE_plein,$V_CE_plein,$B_CE_plein,$A_CE_plein,$Contour_cercle_exterieur,$R_CE_contour,$V_CE_contour,$B_CE_contour,$A_CE_contour,$Rayon_grand_cercle,$Rayon_petit_cercle,$Variation_de_couleur

	centre_origine_X={$centre_origine_X-{w/2}}
	centre_origine_Y={$centre_origine_Y-{h/2}}

	-image[-2] [-1],$centre_origine_X,$centre_origine_Y		## inclure la fleur dans l'image transparente

	-rm[-1]	

	-blur[-1] $Flou_fleur_2

	-spread[-1] $Spread_fleur_2

	-deform[-1] $Deform_fleur_2

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif



#********** FIN Dessiner une fleur 2 ****
	
	
						################################################################
						##                                                            ##
						##         FIN Ensemble Fleurs /  Figures gomtriques        ##
						##                                                            ##
						################################################################





						################################################################
						##                                                            ##
						##                  Ensemble Courbes fermes                  ##
						##                                                            ##
						################################################################	




## version origine du 2 septembre 2012
##
##	Exemples de "belles" courbes
##
##	Parameter_1 = 1
##	Parameter_2 = 1 to 8
##	Parameter_3 = 1 to 16
##	Parameter_4 = 0 to 1.5
##	Inversion = Type 1
##
##
##	Parameter_1 = 0
##	Parameter_2 = 1 to 8
##	Parameter_3 = 1 to 16
##	Parameter_4 = 0 to 1.5
##	Inversion = Type 2
##
##  Cas de courbes ouvertes : Option pour fermer courbe en mmorisant les coordonnes de dpart.
##  Les courbes sont cres dans une fourchette de 0  360 degrs
##
#@gimp Courbes fermees  / Closed curves (V1): samj_courbes_fermees_V1, samj_courbes_fermees_V1_preview
#@gimp : sep = separator(), note = note("<small>Courbes ferm\303\251es / Closed curves\r\nX-Y {Parametre1+{cos-sinT*Parametre2}*{Parametre4+{cos-sinT*Parametre3}}}</small>")
#@gimp : Centre / Center X (%) = float(50,0,100)
#@gimp : Centre / Center Y (%) = float(50,0,100)
#@gimp : Angle = float(360,0,360)
#@gimp : Increment angulaire / Angular increment = float(1.50,0.01,15)
#@gimp : Dimension = float(30,16,1000)
#@gimp : Param\303\250tre 1 / Parameter 1 = float(4,0,8)
#@gimp : Param\303\250tre 2 / Parameter 2 = int(3,0,8)
#@gimp : Param\303\250tre 3 / Parameter 3 = int(2,1,16)
#@gimp : Param\303\250tre 4 / Parameter 4 = float(0,0,1.5)
#@gimp : Inversion (sin/cos) = choice("Sans / Without - Type 1","Avec / With - Type 1","Sans / Without - Type 2","Avec / With - Type 2")
#@gimp : Type de rendu / Rendering type = choice("Points","Cercles / Circles","Lignes / Lines","Segments centre / Segments center","Cercles + Segments centre / Circles = Segments center","Cercles + Segments centre 2 / Circles + Segments center 2","Cercles + Lignes / Circles + Lines","Cercles + Lignes 2 / Circles + Lines 2")
#@gimp : Fermer courbe / Close curve = bool(0)
#@gimp : Rayon  cercles / Radius circles = int(2,1,100)
#@gimp : Couleur 1 / Color 1 = color(172,80,80)
#@gimp : Couleur 2 / Color 2 = color(80,80,172)
#@gimp : Transparence des couleurs / Color transparency = int(255,0,255)
#@gimp : Variation de couleur / Color variation = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Rotation (deg.) = float(0,0,360)
#@gimp : Alpha = bool(0)
#@gimp : Spread = float(0,0,10)
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Deform = float(0,0,25)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2012/09/03</i>.</small>")



samj_courbes_fermees_V1 :

	centre_origine_X={$1/100*w}
	centre_origine_Y={$2/100*h}
	angle=$3
	increment_theta=$4
	dimension=$5
	Parametre_1=$6
	Parametre_2=$7
	Parametre_3=$8
	Parametre_4=$9
	Inversion=$10
	Type_de_rendu=$11
	Fermer_courbe=$12
	Rayon_cercles=$13

	## ATTENTION variables $14,$15,$16 utilises + loin dans le script
	R_Couleur_1=$14
	V_Couleur_1=$15
	B_Couleur_1=$16	

	## ATTENTION variables $17,$18,$19 utilises + loin dans le script
	R_Couleur_2=$17
	V_Couleur_2=$18
	B_Couleur_2=$19
	Transparence_des_couleurs=$20
	Variation_de_couleur=$21
	Rotation=$22
	alpha=$23
	spread_courbe_fermees_V1=$24
	flou_courbe_fermees_V1=$25
	deformation_courbe_fermees_V1=$26

	theta=0
	X=$centre_origine_X
	Y=$centre_origine_Y	

	X_precedent=$centre_origine_X
	Y_precedent=$centre_origine_Y

	compteur_boucle=0


	-if {$alpha==1} 	
		-remove_opacity 			
	-endif

		-do

				-if {$Inversion==0} 
								X={$centre_origine_X+{$dimension*{{$Parametre_1+{cos(pi/180*$Parametre_2*$theta)}}*{$Parametre_4+{cos(pi/180*$Parametre_3*$theta)}}}}}
								Y={$centre_origine_Y+{$dimension*{{$Parametre_1+{cos(pi/180*$Parametre_2*$theta)}}*{$Parametre_4+{sin(pi/180*$Parametre_3*$theta)}}}}}
				-endif


				-if {$Inversion==1}
								X={$centre_origine_X+{$dimension*{{$Parametre_1+{cos(pi/180*$Parametre_2*$theta)}}*{$Parametre_4+{sin(pi/180*$Parametre_3*$theta)}}}}}
								Y={$centre_origine_Y+{$dimension*{{$Parametre_1+{cos(pi/180*$Parametre_2*$theta)}}*{$Parametre_4+{cos(pi/180*$Parametre_3*$theta)}}}}}
				-endif				

				-if {$Inversion==2} 
								X={$centre_origine_X+{$dimension*{{$Parametre_1+{cos(pi/180*$Parametre_2*$theta)}}*{$Parametre_4+{cos(pi/180*$Parametre_3*$theta)}}}}}
								Y={$centre_origine_Y+{$dimension*{{$Parametre_1+{sin(pi/180*$Parametre_2*$theta)}}*{$Parametre_4+{cos(pi/180*$Parametre_3*$theta)}}}}}
				-endif
				
				-if {$Inversion==3} 

								X={$centre_origine_X+{$dimension*{{$Parametre_1+{sin(pi/180*$Parametre_2*$theta)}}*{$Parametre_4+{cos(pi/180*$Parametre_3*$theta)}}}}}
								Y={$centre_origine_Y+{$dimension*{{$Parametre_1+{cos(pi/180*$Parametre_2*$theta)}}*{$Parametre_4+{cos(pi/180*$Parametre_3*$theta)}}}}}
				-endif	


				## remplir couleurs alatoires
				-if {$Variation_de_couleur==1}
						R_Couleur_1={round(?(0,255))}
						V_Couleur_1={round(?(0,255))}
						B_Couleur_1={round(?(0,255))}	
						R_Couleur_2={round(?(0,255))}
						V_Couleur_2={round(?(0,255))}
						B_Couleur_2={round(?(0,255))}				
				-endif

				## couleurs nuances
				-if {$Variation_de_couleur>1}
				
						Valeur_variation_couleur=16
						
						-if {$Variation_de_couleur==3}
							Valeur_variation_couleur=32
						-endif

						-if {$Variation_de_couleur==4}
							Valeur_variation_couleur=64
						-endif						

						R_Couleur_1={round({$14+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$R_Couleur_1>255}
										R_Couleur_1=$14
								-endif
								-if {$R_Couleur_1<0}
										R_Couleur_1=$14
								-endif	

						V_Couleur_1={round({$15+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$V_Couleur_1>255}
										V_Couleur_1=$15
								-endif
								-if {$V_Couleur_1<0}
										V_Couleur_1=$15
								-endif

						B_Couleur_1={round({$16+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$B_Couleur_1>255}
										B_Couleur_1=$16
								-endif
								-if {$B_Couleur_1<0}
										B_Couleur_1=$16
								-endif

						R_Couleur_2={round({$17+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$R_Couleur_2>255}
										R_Couleur_2=$17
								-endif
								-if {$R_Couleur_2<0}
										R_Couleur_2=$17
								-endif

						V_Couleur_2={round({$18+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$V_Couleur_2>255}
										V_Couleur_2=$18
								-endif
								-if {$V_Couleur_2<0}
										V_Couleur_2=$18
								-endif								

						B_Couleur_2={round({$19+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$B_Couleur_2>255}
										B_Couleur_2=$19
								-endif
								-if {$B_Couleur_2<0}
										B_Couleur_2=$19
								-endif

				-endif			


				## mmoriser l'origine pour boucler (Option pour fermer courbe)
				-if {$compteur_boucle==0}
						X_origine=$X
						Y_origine=$Y
				-endif
				-if {$compteur_boucle==1}
						X_boucle_1=$X
						Y_boucle_1=$Y
				-endif


				## points
				-if {$Type_de_rendu==0}
						-point $X,$Y,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs
				-endif

				## cercles
				-if {$Type_de_rendu==1}						
						-ellipse $X,$Y,$Rayon_cercles,$Rayon_cercles,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs
				-endif

				## lignes
				-if {$Type_de_rendu==2}	
					-if {$compteur_boucle>0} 
						-line $X_precedent,$Y_precedent,$X,$Y,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs					
					-endif				
				-endif

				## Segments centre
				-if {$Type_de_rendu==3} 
					-line $centre_origine_X,$centre_origine_Y,$X,$Y,1,$R_Couleur_2,$V_Couleur_2,$B_Couleur_2,$Transparence_des_couleurs		
				-endif

				## cercles + Segments centre
				-if {$Type_de_rendu==4}
					-ellipse $X,$Y,$Rayon_cercles,$Rayon_cercles,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs
					-line $centre_origine_X,$centre_origine_Y,$X,$Y,1,$R_Couleur_2,$V_Couleur_2,$B_Couleur_2,$Transparence_des_couleurs		
				-endif

				## cercles + Segments centre 2
				-if {$Type_de_rendu==5}
					-line $centre_origine_X,$centre_origine_Y,$X,$Y,1,$R_Couleur_2,$V_Couleur_2,$B_Couleur_2,$Transparence_des_couleurs	
					-ellipse $X,$Y,$Rayon_cercles,$Rayon_cercles,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs	
				-endif

				## lignes + cercles
				-if {$Type_de_rendu==6}
					-if {$compteur_boucle>0} 
						-line $X_precedent,$Y_precedent,$X,$Y,1,$R_Couleur_2,$V_Couleur_2,$B_Couleur_2,$Transparence_des_couleurs
						-ellipse $X_precedent,$Y_precedent,$Rayon_cercles,$Rayon_cercles,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs
					-endif
					-ellipse $X,$Y,$Rayon_cercles,$Rayon_cercles,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs	
				-endif

				## lignes + cercles 2
				-if {$Type_de_rendu==7}
					-ellipse $X,$Y,$Rayon_cercles,$Rayon_cercles,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs
					-if {$compteur_boucle>0} 
						-line $X_precedent,$Y_precedent,$X,$Y,1,$R_Couleur_2,$V_Couleur_2,$B_Couleur_2,$Transparence_des_couleurs					
					-endif					
				-endif			


				compteur_boucle={$compteur_boucle+1}
				X_precedent=$X
				Y_precedent=$Y
				theta={$theta+$increment_theta}


		-while {$theta<{$angle+$increment_theta}}



		-if {$Fermer_courbe==1}	

				## remplir couleurs alatoires
				-if {$Variation_de_couleur==1}
						R_Couleur_1={round(?(0,255))}
						V_Couleur_1={round(?(0,255))}
						B_Couleur_1={round(?(0,255))}	
						R_Couleur_2={round(?(0,255))}
						V_Couleur_2={round(?(0,255))}
						B_Couleur_2={round(?(0,255))}				
				-endif

				## couleurs nuances
				-if {$Variation_de_couleur>1}

						Valeur_variation_couleur=16

						-if {$Variation_de_couleur==3}
							Valeur_variation_couleur=32
						-endif

						-if {$Variation_de_couleur==4}
							Valeur_variation_couleur=64
						-endif						

						R_Couleur_1={round({$14+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$R_Couleur_1>255}
										R_Couleur_1=$14
								-endif
								-if {$R__Couleur_1<0}
										R_Couleur_1=$14
								-endif	

						V_Couleur_1={round({$15+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$V_Couleur_1>255}
										V_Couleur_1=$15
								-endif
								-if {$V_Couleur_1<0}
										V_Couleur_1=$15
								-endif

						B_Couleur_1={round({$16+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$B_Couleur_1>255}
										B_Couleur_1=$16
								-endif
								-if {$B_Couleur_1<0}
										B_Couleur_1=$16
								-endif

						R_Couleur_2={round({$17+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$R_Couleur_2>255}
										R_Couleur_2=$17
								-endif
								-if {$R_Couleur_2<0}
										R_Couleur_2=$17
								-endif

						V_Couleur_2={round({$18+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$V_Couleur_2>255}
										V_Couleur_2=$18
								-endif
								-if {$V_Couleur_2<0}
										V_Couleur_2=$18
								-endif								

						B_Couleur_2={round({$19+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
								-if {$B_Couleur_2>255}
										B_Couleur_2=$19
								-endif
								-if {$B_Couleur_2<0}
										B_Couleur_2=$19
								-endif

				-endif


				## lignes
				-if {$Type_de_rendu==2}	
					-line $X,$Y,$X_origine,$Y_origine,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs					
				-endif				

				## lignes + cercles
				-if {$Type_de_rendu==6}
					-line $X,$Y,$X_origine,$Y_origine,1,$R_Couleur_2,$V_Couleur_2,$B_Couleur_2,$Transparence_des_couleurs
					-ellipse $X_origine,$Y_origine,$Rayon_cercles,$Rayon_cercles,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs	
					-ellipse $X,$Y,$Rayon_cercles,$Rayon_cercles,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs	
				-endif

				## lignes + cercles 2
				-if {$Type_de_rendu==7}
					-ellipse $X_origine,$Y_origine,$Rayon_cercles,$Rayon_cercles,0,1,$R_Couleur_1,$V_Couleur_1,$B_Couleur_1,$Transparence_des_couleurs
					-line $X,$Y,$X_origine,$Y_origine,1,$R_Couleur_2,$V_Couleur_2,$B_Couleur_2,$Transparence_des_couleurs
					-line $X_boucle_1,$Y_boucle_1,$X_origine,$Y_origine,1,$R_Couleur_2,$V_Couleur_2,$B_Couleur_2,$Transparence_des_couleurs
				-endif

		-endif

	-rotate $Rotation

	-blur $flou_courbe_fermees_V1

	-spread $spread_courbe_fermees_V1

	-deform $deformation_courbe_fermees_V1	

samj_courbes_fermees_V1_preview :
	-gimp_split_preview "-samj_courbes_fermees_V1 ${1--2}",$-1	







						################################################################
						##                                                            ##
						##                FIN Ensemble Courbes fermes                ##
						##                                                            ##
						################################################################







						################################################################
						##                                                            ##
						##                  Couleurs_Psychedeliques                   ##
						##                                                            ##
						################################################################





	
	
#********** Couleurs_Psychedeliques **********
##
##	Version 1.05 samj 26 septembre 2012
##	Version 1.06 16 octobre 2012 modification paramtres gimp_morpho + choix RGB
##	Optimisation du code par Ronounours http://www.gimpchat.com/viewtopic.php?f=22&t=5335&p=67007#p67004  , merci pour l'aide et les explications :o)
##
#@gimp Couleurs Psychedeliques : Couleurs_Psychedeliques, Couleurs_Psychedeliques_preview
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Painting - Painting parameters</small>")
#@gimp : Abstraction = int(5,0,10)
#@gimp : Details scale = float(2.5,0,10)
#@gimp : Color = float(1.5,0,5)
#@gimp : Smoothness = float(50,0,200)
#@gimp : Sharpen shades = bool(1)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Morpho - Morpho parameters</small>")
#@gimp : Action = choice(5,"Erosion","Dilation","Opening","Closing","Original - Erosion","Dilation - Original","Original - Opening","Closing - Original")
#@gimp : Size = int(5,0,32)
#@gimp : Invert colors = bool(0)
#@gimp : Shape = choice(0,"Square","Octagonal","Circular")
#@gimp : Canaux / Channel(s) = choice(2,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Cartoon - Cartoon parameters</small>")
#@gimp : Smoothness = float(8,0,16)
#@gimp : Sharpening = float(80,0,400)
#@gimp : Threshold = float(20,1,30)
#@gimp : Thickness = float(0.25,0,1)
#@gimp : Color = float(1.5,0,3)
#@gimp : Quantization = float(8,2,256)
#@gimp : sep = separator(), note = note("<small>Inverser les couleurs - Negative</small>")
#@gimp : Inverser les couleurs / Negative = bool(0)
#@gimp : sep = separator(), note = note("<small>Pix\303\251liser</small>")
#@gimp : Pixeliser = bool(0)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj/Ronounours</i>.      Latest update : <i>2013/01/25</i>.</small>")

Couleurs_Psychedeliques :

####### Dclaration des variables

#gimp_painting
	Abstraction=$1
	Details_scale=$2
	Color=$3
	Smoothness=$4
	Sharpen_shades=$5

#gimp_morpho
	Action=$6
	Size=$7
	Invert_colors=$8
	Shape=$9
	Channel_morpho=$10

#cartoon
	Smoothness_cartoon=$11
	Sharpening_cartoon=$12
	Threshold_cartoon=$13
	Thickness_cartoon=$14
	Color_cartoon=$15
	Quantization_cartoon=$16

	Negatif=$17

	Pixeliser=$18



####### Ligne de commandes

  -repeat @# -l[$>]
  
	-if {$Pixeliser==1}
		largeur_origine={w}
		hauteur_origine={h}
		
		-resize 20%,20%
		
			-if {im<0} 
				-c 0,255 
			-elif {iM>255} 
				-c 0,255 
			-endif
		
		-resize $largeur_origine,$hauteur_origine
		
			-if {im<0} 
				-c 0,255 
			-elif {iM>255} 
				-c 0,255 
			-endif
		
	-endif
	
	
    --remove_opacity                       # '--' add the result as a new image to the list.
	-gimp_painting[-1] $Abstraction,$Details_scale,$Color,$Smoothness,$Sharpen_shades 
	-gimp_morpho[-1] $Action,$Size,$Invert_colors,$Shape,$Channel_morpho,0
    --cartoon[-1] $Smoothness_cartoon,$Sharpening_cartoon,$Threshold_cartoon,$Thickness_cartoon,$Color_cartoon,$Quantization_cartoon
    -compose_1530_screen[-2,-1]
    -transfer_colors 0
	
	-if {$Negatif==1}
		-negative[-1]
	-endif
	
	
  -endl -done

Couleurs_Psychedeliques_preview :
	-gimp_split_preview "-Couleurs_Psychedeliques ${1--2}",$-1
						
						





						################################################################
						##                                                            ##
						##                FIN  Couleurs_Psychedeliques                ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##                    Couleurs_Metalliques                    ##
						##                                                            ##
						################################################################	





	
	
#********** Couleurs_Metalliques **********
##
##                                       Version 1.05 samj 29 septembre 2012
##
##
#@gimp Couleurs Metalliques : Couleurs_Metalliques, Couleurs_Metalliques_preview
#@gimp : sep = separator(), note = note("<small>Rendu - Rendering</small>")
#@gimp : Transparence / transparency = choice(0,"Conserver / Preserve","Supprimer / Remove")
#@gimp : Rendu / Rendering = choice(0,"Type 1","Type 2")
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Noise - Noise parameters</small>")
#@gimp : Amplitude = float(22,0,200)
#@gimp : Type de bruit / Noise type = choice("Gaussian","Uniform","Salt and pepper","Poisson")
#@gimp : Value range = choice("Cut","Normalize")
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Local normalization - Local normalization parameters</small>")
#@gimp : Double effet = bool(0)
#@gimp : Amplitude = float(0,0,60)
#@gimp : Rayon / Radius = int(6,1,64)
#@gimp : Neighborhood smoothness = float(5,0,40)
#@gimp : Average smoothness = float(20,0,40)
#@gimp : Constrain values = bool(1)
#@gimp : Canaux / Channel(s) = choice(0,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Boost-Fade - Boost-Fade parameters : Si-If Amplitude Sup. 0</small>")
#@gimp : Amplitude = float(0,0,10)
#@gimp : sep = separator(), note = note("<small>PhotoComix Options</small>")
#@gimp : Utiliser / Use PC Options = bool(0)
#@gimp : Pencilbw Size = float(0.3,0,5)
#@gimp : Pencilbw Amplitude = float(60,0,200)
#@gimp : Blend Opacity = float(1,0,1)
#@gimp : Blend Revert layers = bool(0)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Couleurs_Metalliques :

####### Dclaration des variables

	Transparence=$1
	Rendu=$2

#gimp_noise
	Amplitude=$3
	Noise_type=$4
	Noise_Channel=7
	Value_range=$5

#gimp_normalize_local
	Double_effet=$6
	Local_normalization_Amplitude=$7
	Radius=$8
	Neighborhood_smoothness=$9
	Average_smoothness=$10
	Constrain_values=$11
	Local_normalization_Channel=$12
	
#gimp_boost_fade
	boost_fade_Amplitude=$13

	Utiliser_Photocomix_Options=$14
	Pencilbw_Size=$15
	Pencilbw_Amplitude=$16
	Blend_soft_light_Opacity=$17
	Blend_soft_light_Revert_layers=$18

####### Ligne de commandes

  -repeat @# -l[$>]
  

	-if {$Transparence==1}
		-remove_opacity[-1]
	-endif
  
	-if {$Utiliser_Photocomix_Options==1}
			--pencilbw[-1] $Pencilbw_Size,$Pencilbw_Amplitude
			
			-if {$Double_effet==1}
				-gimp_normalize_local[-2] $Local_normalization_Amplitude,$Radius,$Neighborhood_smoothness,$Average_smoothness,$Constrain_values,$Local_normalization_Channel
			-endif
			
			-gimp_noise[-2] $Amplitude,$Noise_type,$Noise_Channel,$Value_range
			
			-if {$Rendu==0}
				-gimp_local_orientation[-2] 0,0,100,0,7
			-endif
			
			-if {$Rendu==1}
				-gimp_local_orientation[-2] 0,0,100,0,14
			-endif
			
			-gimp_normalize_local[-2] $Local_normalization_Amplitude,$Radius,$Neighborhood_smoothness,$Average_smoothness,$Constrain_values,$Local_normalization_Channel

			-if {$boost_fade_Amplitude>0}
				-gimp_boost_fade[-2] $boost_fade_Amplitude
			-endif				
			
			-gimp_compose_1530_softlight[-2,-1] $Blend_soft_light_Opacity,$Blend_soft_light_Revert_layers
		
			
	-else  
			-if {$Double_effet==1}
				-gimp_normalize_local[-1] $Local_normalization_Amplitude,$Radius,$Neighborhood_smoothness,$Average_smoothness,$Constrain_values,$Local_normalization_Channel
			-endif
			
			-gimp_noise[-1] $Amplitude,$Noise_type,$Noise_Channel,$Value_range
			
			-if {$Rendu==0}
				-gimp_local_orientation[-1] 0,0,100,0,7
			-endif
			
			-if {$Rendu==1}
				-gimp_local_orientation[-1] 0,0,100,0,14
			-endif
			
			-gimp_normalize_local[-1] $Local_normalization_Amplitude,$Radius,$Neighborhood_smoothness,$Average_smoothness,$Constrain_values,$Local_normalization_Channel

			-if {$boost_fade_Amplitude>0}
				-gimp_boost_fade[-1] $boost_fade_Amplitude
			-endif			
	-endif	
	
  -endl -done

Couleurs_Metalliques_preview :
	-gimp_split_preview "-Couleurs_Metalliques ${1--2}",$-1
						


						################################################################
						##                                                            ##
						##                  FIN  Couleurs_Metalliques                 ##
						##                                                            ##
						################################################################





						################################################################
						##                                                            ##
						##                        Sparkly_samj                        ##
						##                                                            ##
						################################################################	





	
	
#********** Sparkly_samj **********
##
##                                       Version 1.08 samj 3 octobre 2012
##
##
#@gimp Sparkly : Sparkly_samj, Sparkly_samj_preview
#@gimp : sep = separator(), note = note("<small>Rendu - Rendering</small>")
#@gimp : Nombre \303\251blouissements / Number of flashes= int(100,1,500)
#@gimp : Epaisseur / Thickness (pixels)= int(2,1,20)
#@gimp : Couleur / Color = color(255,255,255,255)
#@gimp : Couleurs al\303\251atoires / Random colors = choice("Non / No","RVB / RGB")
#@gimp : Mode aleatoire / Random mode = choice(0,"Mode 1","Mode 2")  
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Wind - Wind parameters</small>")
#@gimp : Amplitude = int(80,0,500)
#@gimp : Angle = float(0,0,360)
#@gimp : Attenuation = float(0.7,0,1)
#@gimp : Threshold = float(20,0,100)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Blur - Blur parameters</small>")
#@gimp : Flou / Blur = float(0.25,0,1)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Spread - Spread parameters</small>")
#@gimp : X-variations = float(0,-50,50)
#@gimp : Y-variations = float(0,-50,50)
#@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), note = note("<small>8 rayons - 8 rays</small>")
#@gimp : Type 8 = choice("Non / No","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%")
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Isophotes - Isophotes parameters</small>")
#@gimp : Levels = int(3,3,256)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Noise Hurl - Noise Hurl parameters</small>")
#@gimp : Amplitude = float(0,0.00,10.00)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Sparkly_samj :

####### Dclaration des variables

	nombre_eblouissements=$1

	dim_centre=$2
	
	R_Couleur=$3
	V_Couleur=$4
	B_Couleur=$5
	Transparence_des_couleurs=$6
	
	Couleurs_aleatoires=$7
	
	Mode_aleatoire=$8  		### mode 2 pour avoir peu de diffrence entre plusieurs appels de G'MIC

	amplitude_wind=$9
	angle_wind=$10  			# de 0  90
	attenuation_wind=$11
	threshold_wind=$12
	
	valeur_blur=$13 		# de 0  1
	
	#gimp_spread
	X_variations=$14
	Y_variations=$15
	Channel_spread=$16
	
	Type_huit_bras=$17
	
	Levels_isophotes=$18  # > 4 pour viter des erreurs
	
	Noise_Hurl=$19

	largeur_origine={w}
	hauteur_origine={h}
	

####### Ligne de commandes

  -repeat @# -l[$>]

		temps1=@|
		
		$largeur_origine,$hauteur_origine,1,4


		-repeat $nombre_eblouissements
		
		
				#Couleurs alatoires
				-if {$Couleurs_aleatoires==1} #RVB / RGB
						R_Couleur={round(?(0,255))}
						V_Couleur={round(?(0,255))}
						B_Couleur={round(?(0,255))}	
				-endif

		

				-if {$Mode_aleatoire==1}				
						X_point={round(?(0,$largeur_origine))}
						Y_point={round(?(0,$hauteur_origine))}					
				-endif	
				
				####

				-if {$Mode_aleatoire==0}				
						temps2=@|
						alea={{abs(g)}+1+{{{$temps2-$temps1}+?(0,1)}*10}}
							-do
								alea={$alea-1}
							-while {$alea>1}						
						X_point={round({$largeur_origine*$alea})}
						
						temps3=@|
						alea={{abs(g)}+1+{{{$temps3-$temps1}+?(0,1)}*10}}					
							-do
								alea={$alea-1}
							-while {$alea>1}						
						Y_point={round({$hauteur_origine*$alea})}					
				-endif	

				####
				
				-polygon[-1] 4,$X_point,$Y_point,$X_point,{$Y_point+$dim_centre},{$X_point+$dim_centre},{$Y_point+$dim_centre},{$X_point+$dim_centre},$Y_point,1,$R_Couleur,$V_Couleur,$B_Couleur,$Transparence_des_couleurs
				
		-done
			
		--wind[-1] $amplitude_wind,$angle_wind,$attenuation_wind,$threshold_wind
		
		angle_wind={$angle_wind+90}
		--wind[-2] $amplitude_wind,$angle_wind,$attenuation_wind,$threshold_wind
		
		## -gimp_compose_1530_alpha[-1,-2] 1,0
		-add[-1,-2]
		
		angle_wind={$angle_wind+90}
		--wind[-2] $amplitude_wind,$angle_wind,$attenuation_wind,$threshold_wind
		
		## -gimp_compose_1530_alpha[-1,-2] 1,0
		-add[-1,-2]
		
		angle_wind={$angle_wind+90}
		--wind[-2] $amplitude_wind,$angle_wind,$attenuation_wind,$threshold_wind
		
		## -gimp_compose_1530_alpha[-1,-2] 1,0
		-add[-1,-2]		


		
		-if {$Type_huit_bras>0}
		
				angle_wind={$angle_wind+45}
				--wind[-2] {round({{$amplitude_wind*$Type_huit_bras}/10})},$angle_wind,$attenuation_wind,$threshold_wind
				
				## -gimp_compose_1530_alpha[-1,-2] 1,0
				-add[-1,-2]
				
				angle_wind={$angle_wind+90}
				--wind[-2] {round({{$amplitude_wind*$Type_huit_bras}/10})},$angle_wind,$attenuation_wind,$threshold_wind
				
				## -gimp_compose_1530_alpha[-1,-2] 1,0
				-add[-1,-2]
				
				angle_wind={$angle_wind+90}
				--wind[-2] {round({{$amplitude_wind*$Type_huit_bras}/10})},$angle_wind,$attenuation_wind,$threshold_wind
				
				## -gimp_compose_1530_alpha[-1,-2] 1,0
				-add[-1,-2]			
				
				
				angle_wind={$angle_wind+90}
				--wind[-2] {round({{$amplitude_wind*$Type_huit_bras}/10})},$angle_wind,$attenuation_wind,$threshold_wind
				
				## -gimp_compose_1530_alpha[-1,-2] 1,0
				-add[-1,-2]		
		
		-endif	

		# spread centre
		-gimp_spread[-2] $X_variations,$Y_variations,$Channel_spread
		
		# mlange toiles et centre	
		## -gimp_compose_1530_alpha[-1,-2] 1,0
		-add[-1,-2]
		
		# effets		
		-blur[-1] $valeur_blur
		
		-if {$Levels_isophotes>3}
			-isophotes[-1] $1
		-endif

		-if {$Noise_Hurl>0}
			-noise_hurl[-1] $Noise_Hurl
		-endif		
		
		
		# rsultat final composition
		-gimp_compose_1530_alpha[-1,-2] 1,0
		

	
	
  -endl -done

Sparkly_samj_preview :
	-gimp_split_preview "-Sparkly_samj ${1--2}",$-1
						
						





						################################################################
						##                                                            ##
						##                      FIN  Sparkly_samj                     ##
						##                                                            ##
						################################################################	






						################################################################
						##                                                            ##
						##               Dbut  Masques_geometriques_samj             ##
						##                                                            ##
						################################################################

## par SAMJ  www.aljacom.com/~gmic
#@gimp Masques geometriques : Masques_geometriques_samj, Masques_geometriques_samj_preview
#@gimp : sep = separator(), note = note("<small>Rendu - Rendering</small>")
#@gimp : Dimension Forme 1 = int(8,1,128)
#@gimp : Dimension Forme 2 = int(4,1,128)
#@gimp : Compensation / Offset X = int(1,-1,128)
#@gimp : Compensation / Offset Y = int(1,-1,128)
#@gimp : Couleur / Color Forme 1  = color(255,0,0,255)
#@gimp : Couleur / Color Forme 2  = color(255,255,0,255)
#@gimp : Formes = choice("Cercles / Circles","Carres / Squares","Ellipses - R=Dim.Forme1 & r=Dim.Forme2","Triangles","Cercles / Circles - Mode 2 - Dim.Forme1>Dim.Forme2","Triangles - Mode 2 - Dim.Forme1>Dim.Forme2","Carres / Squares - Mode 2 - Dim.Forme1>Dim.Forme2","Triangles - Mode 3","Ellipses Mode 2 - R=Dim.Forme1 & r=Dim.Forme2","Ellipses Mode 3 - R=Dim.Forme1 & r=Dim.Forme2")
#@gimp : Angle rotation = float(0,0,180)
#@gimp : Couleurs al\303\251atoires / Random colors = choice("Non / No","RVB / RGB","RVBA /RGBA","Niveaux de Gris / Grayscale","Niveaux de Gris / Grayscale & Alpha","Alpha")
#@gimp : Mode Alterner / Alternate mode = choice("Non - No","Mode 1","Mode 2 & Alterner Effet","Mode 3 & Alterner Effet","V Couleurs/Colors & Alterner Effet","H Couleurs/Colors & Alterner Effet")
#@gimp : Alterner Effet= int(2,2,32)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Deform - Deform parameters</small>")
#@gimp : Deform = float(0,0,25)	
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Smooth diffusion - Smooth diffusion parameters</small>")
#@gimp : Utiliser / Use Smooth Diffusion = bool(0)
#@gimp : Sharpness = float(0.7,0,2)
#@gimp : Anisotropy = float(0.3,0,1)
#@gimp : Gradient smoothness = float(0.6,0,10)
#@gimp : Tensor smoothness = float(1.1,0,10)
#@gimp : Time step = float(15,5,50)
#@gimp : Iterations = int(8,1,100)
#@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), note = note("<small>R\303\251sultat - Result</small>")
#@gimp : Choix / Choice = choice("1 Calque / 1 Layer","2 Calques / 2 Layers")
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")








Masques_geometriques_samj :

####### Ligne de commandes

  -repeat @# -l[$>]

		Dimension_forme_1=$1
		Dimension_forme_2=$2
		Compensation_X=$3
		Compensation_Y=$4


		R_Figure_1=$5
		V_Figure_1=$6
		B_Figure_1=$7
		Alpha_Figure_1=$8

		R_Figure_2=$9
		V_Figure_2=$10
		B_Figure_2=$11
		Alpha_Figure_2=$12
		
		Formes=$13
		angle_rotation=$14		
		Couleurs_aleatoires=$15
		Mode_Alterner=$16
		Alterner_Effet=$17

		deformation=$18
		
		Utiliser_Smooth_Diffusion=$19
		SD_Sharpness=$20
		SD_Anisotropy=$21
		SD_Gradient_smoothness=$22
		SD_Tensor_smoothness=$23
		SD_Time_step=$24
		SD_Iterations=$25
		SD_Channels=$26	

		Resultat=$27


		
		R_Figure_1_origine=$R_Figure_1
		V_Figure_1_origine=$V_Figure_1
		B_Figure_1_origine=$B_Figure_1
		Alpha_Figure_1_origine=$Alpha_Figure_1	

		R_Figure_2_origine=$R_Figure_2
		V_Figure_2_origine=$V_Figure_2
		B_Figure_2_origine=$B_Figure_2
		Alpha_Figure_2_origine=$Alpha_Figure_2

		largeur_image_temporaire={w}
		hauteur_image_temporaire={h}


		$largeur_image_temporaire,$hauteur_image_temporaire,1,4

		-if {$Dimension_forme_1>$Dimension_forme_2}
			Depassement={$Dimension_forme_1*2}
		-else
			Depassement={$Dimension_forme_2*2}
		-endif

		X=$Dimension_forme_1
		Y=$Dimension_forme_1
		compteurX=0
		compteurY=0


		-do		
				-do
					-if {$Mode_Alterner==1}
						-if {$Dimension_forme_1>$Dimension_forme_2}
							X={$X+{$Dimension_forme_1*2}+$Compensation_X}
						-else
							X={$X+{$Dimension_forme_2*2}+$Compensation_X}
						-endif	
					-endif

					-if {$Mode_Alterner==2}
						-if {$compteurY%$Alterner_Effet==1}
							-if {$Dimension_forme_1>$Dimension_forme_2}
								X={$X+{$Dimension_forme_1*2}+$Compensation_X}
							-else
								X={$X+{$Dimension_forme_2*2}+$Compensation_X}
							-endif	
						-endif
					-endif
					

					-if {$Mode_Alterner==4}	
						-if {$compteurY%$Alterner_Effet==1}
								R_Figure_1=$R_Figure_1_origine
								V_Figure_1=$V_Figure_1_origine
								B_Figure_1=$B_Figure_1_origine
								Alpha_Figure_1=$Alpha_Figure_1_origine

								R_Figure_2=$R_Figure_2_origine
								V_Figure_2=$V_Figure_2_origine
								B_Figure_2=$B_Figure_2_origine
								Alpha_Figure_2=$Alpha_Figure_2_origine
						-else
								R_Figure_1=$R_Figure_2_origine
								V_Figure_1=$V_Figure_2_origine
								B_Figure_1=$B_Figure_2_origine
								Alpha_Figure_1=$Alpha_Figure_2_origine

								R_Figure_2=$R_Figure_1_origine
								V_Figure_2=$V_Figure_1_origine
								B_Figure_2=$B_Figure_1_origine
								Alpha_Figure_2=$Alpha_Figure_1_origine
						-endif
					-endif
					
					#Couleurs alatoires
					-if {$Couleurs_aleatoires==1} #RVB / RGB
							R_Figure_1={round(?(0,255))}
							V_Figure_1={round(?(0,255))}
							B_Figure_1={round(?(0,255))}
							R_Figure_2={round(?(0,255))}
							V_Figure_2={round(?(0,255))}
							B_Figure_2={round(?(0,255))}
					-endif
					-if {$Couleurs_aleatoires==2} #RVBA /RGBA
							R_Figure_1={round(?(0,255))}
							V_Figure_1={round(?(0,255))}
							B_Figure_1={round(?(0,255))}
							Alpha_Figure_1={round(?(0,255))}
							R_Figure_2={round(?(0,255))}
							V_Figure_2={round(?(0,255))}
							B_Figure_2={round(?(0,255))}
							Alpha_Figure_2={round(?(0,255))}
					-endif
					-if {$Couleurs_aleatoires==3} #Niveaux de Gris / Grayscale
							Niveau_de_gris={round(?(0,255))}
							R_Figure_1=$Niveau_de_gris
							V_Figure_1=$Niveau_de_gris
							B_Figure_1=$Niveau_de_gris
							Niveau_de_gris={round(?(0,255))}
							R_Figure_2=$Niveau_de_gris
							V_Figure_2=$Niveau_de_gris
							B_Figure_2=$Niveau_de_gris
					-endif
					-if {$Couleurs_aleatoires==4} #Niveaux de Gris / Grayscale & Alpha
							Niveau_de_gris={round(?(0,255))}
							R_Figure_1=$Niveau_de_gris
							V_Figure_1=$Niveau_de_gris
							B_Figure_1=$Niveau_de_gris
							Alpha_Figure_1={round(?(0,255))}
							Niveau_de_gris={round(?(0,255))}
							R_Figure_2=$Niveau_de_gris
							V_Figure_2=$Niveau_de_gris
							B_Figure_2=$Niveau_de_gris
							Alpha_Figure_2={round(?(0,255))}
					-endif
					-if {$Couleurs_aleatoires==5} #Alpha
							Alpha_Figure_1={round(?(0,255))}
							Alpha_Figure_2={round(?(0,255))}
					-endif

					## cercles 2 couleurs
					-if {$Formes==0}					 
						-ellipse[-1] $X,$Y,$Dimension_forme_1,$Dimension_forme_1,0,1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1
						X={$X+$Dimension_forme_1+$Dimension_forme_2+$Compensation_X}

						-ellipse[-1] $X,$Y,$Dimension_forme_2,$Dimension_forme_2,0,1,$R_Figure_2,$V_Figure_2,$B_Figure_2,$Alpha_Figure_2						
						X={$X+$Dimension_forme_1+$Dimension_forme_2+$Compensation_X}
					-endif

					## carrs 2 couleurs
					-if {$Formes==1}
						demi_diagonale=$Dimension_forme_1
						point1_X={round({$demi_diagonale*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$demi_diagonale*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+90})}})}
						point3_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+180})}})}
						point3_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+180})}})}
						point4_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+270})}})}
						point4_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+270})}})}

						-polygon[-1] 4,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},{$X+$point4_X},{$Y+$point4_Y},1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1 
						X={$X+$Dimension_forme_1+$Dimension_forme_2+$Compensation_X}

						demi_diagonale=$Dimension_forme_2
						point1_X={round({$demi_diagonale*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$demi_diagonale*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+90})}})}
						point3_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+180})}})}
						point3_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+180})}})}
						point4_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+270})}})}
						point4_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+270})}})}
						
						-polygon[-1] 4,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},{$X+$point4_X},{$Y+$point4_Y},1,$R_Figure_2,$V_Figure_2,$B_Figure_2,$Alpha_Figure_2
						X={$X+$Dimension_forme_1+$Dimension_forme_2+$Compensation_X}
					-endif


					 ## ellipses 1 couleur
					 -if {$Formes==2}
						point1_X={round({$Dimension_forme_1*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$Dimension_forme_1*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$Dimension_forme_2*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$Dimension_forme_2*{sin(pi/180*{$angle_rotation+90})}})}
						-ellipse[-1] $X,$Y,{$Dimension_forme_1},{$Dimension_forme_2},$angle_rotation,1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1
						-if {$Dimension_forme_1>$Dimension_forme_2}
							X={$X+{$Dimension_forme_1*2}+$Compensation_X}
						-else
							X={$X+{$Dimension_forme_2*2}+$Compensation_X}
						-endif
					-endif

					
					## triangles 2 couleurs
					-if {$Formes==3}
						rayon_cercle_circonscrit=$Dimension_forme_1
						point1_X={round({$rayon_cercle_circonscrit*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+120})}})}
						point2_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+120})}})}
						point3_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+240})}})}
						point3_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+240})}})}

						-polygon[-1] 3,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1
						X={$X+$Dimension_forme_1+$Dimension_forme_2+$Compensation_X}

						rayon_cercle_circonscrit=$Dimension_forme_2
						point1_X={round({$rayon_cercle_circonscrit*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+120})}})}
						point2_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+120})}})}
						point3_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+240})}})}
						point3_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+240})}})}

						-polygon[-1] 3,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},1,$R_Figure_2,$V_Figure_2,$B_Figure_2,$Alpha_Figure_2
						X={$X+$Dimension_forme_1+$Dimension_forme_2+$Compensation_X}					
					-endif
					
					## cercles 2 couleurs superposs
					-if {$Formes==4}
						-ellipse[-1] $X,$Y,$Dimension_forme_1,$Dimension_forme_1,0,1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1
						-ellipse[-1] $X,$Y,$Dimension_forme_2,$Dimension_forme_2,0,1,$R_Figure_2,$V_Figure_2,$B_Figure_2,$Alpha_Figure_2						
						-if {$Dimension_forme_1>$Dimension_forme_2}
							X={$X+{$Dimension_forme_1*2}+$Compensation_X}
						-else
							X={$X+{$Dimension_forme_2*2}+$Compensation_X}
						-endif
					-endif

					## triangles 2 couleurs superposs
					-if {$Formes==5}
						rayon_cercle_circonscrit=$Dimension_forme_1
						point1_X={round({$rayon_cercle_circonscrit*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+120})}})}
						point2_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+120})}})}
						point3_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+240})}})}
						point3_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+240})}})}

						-polygon[-1] 3,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1

						rayon_cercle_circonscrit=$Dimension_forme_2
						point1_X={round({$rayon_cercle_circonscrit*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+120})}})}
						point2_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+120})}})}
						point3_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+240})}})}
						point3_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+240})}})}

						-polygon[-1] 3,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},1,$R_Figure_2,$V_Figure_2,$B_Figure_2,$Alpha_Figure_2

						-if {$Dimension_forme_1>$Dimension_forme_2}
							X={$X+{$Dimension_forme_1*2}+$Compensation_X}
						-else
							X={$X+{$Dimension_forme_2*2}+$Compensation_X}
						-endif
					-endif

					## carrs 2 couleurs superposs
					-if {$Formes==6}
						demi_diagonale=$Dimension_forme_1
						point1_X={round({$demi_diagonale*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$demi_diagonale*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+90})}})}
						point3_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+180})}})}
						point3_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+180})}})}
						point4_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+270})}})}
						point4_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+270})}})}

						-polygon[-1] 4,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},{$X+$point4_X},{$Y+$point4_Y},1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1 

						demi_diagonale=$Dimension_forme_2
						point1_X={round({$demi_diagonale*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$demi_diagonale*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+90})}})}
						point3_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+180})}})}
						point3_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+180})}})}
						point4_X={round({$demi_diagonale*{cos(pi/180*{$angle_rotation+270})}})}
						point4_Y={round({$demi_diagonale*{sin(pi/180*{$angle_rotation+270})}})}

						-polygon[-1] 4,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},{$X+$point4_X},{$Y+$point4_Y},1,$R_Figure_2,$V_Figure_2,$B_Figure_2,$Alpha_Figure_2
						-if {$Dimension_forme_1>$Dimension_forme_2}
							X={$X+{$Dimension_forme_1*2}+$Compensation_X}
						-else
							X={$X+{$Dimension_forme_2*2}+$Compensation_X}
						-endif
					-endif

					## triangles inverss 2 couleurs superposs
					-if {$Formes==7}
						rayon_cercle_circonscrit=$Dimension_forme_1
						point1_X={round({$rayon_cercle_circonscrit*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+120})}})}
						point2_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+120})}})}
						point3_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+240})}})}
						point3_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+240})}})}

						-polygon[-1] 3,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1

						rayon_cercle_circonscrit=$Dimension_forme_2
						point1_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+180})}})}
						point1_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+180})}})}
						point2_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+300})}})}
						point2_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+300})}})}
						point3_X={round({$rayon_cercle_circonscrit*{cos(pi/180*{$angle_rotation+60})}})}
						point3_Y={round({$rayon_cercle_circonscrit*{sin(pi/180*{$angle_rotation+60})}})}

						-polygon[-1] 3,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},1,$R_Figure_2,$V_Figure_2,$B_Figure_2,$Alpha_Figure_2

						-if {$Dimension_forme_1>$Dimension_forme_2}
							X={$X+{$Dimension_forme_1*2}+$Compensation_X}
						-else
							X={$X+{$Dimension_forme_2*2}+$Compensation_X}
						-endif
					-endif

					 ## ellipses 2 couleurs superposes
					 -if {$Formes==8}
						point1_X={round({$Dimension_forme_1*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$Dimension_forme_1*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$Dimension_forme_2*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$Dimension_forme_2*{sin(pi/180*{$angle_rotation+90})}})}
						-ellipse[-1] $X,$Y,{$Dimension_forme_1},{$Dimension_forme_2},$angle_rotation,1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1
						point1_X={round({$Dimension_forme_1*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$Dimension_forme_1*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$Dimension_forme_2*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$Dimension_forme_2*{sin(pi/180*{$angle_rotation+90})}})}						
						-ellipse[-1] $X,$Y,{$Dimension_forme_1},{$Dimension_forme_2},{$angle_rotation+90},1,$R_Figure_2,$V_Figure_2,$B_Figure_2,$Alpha_Figure_2					
						-if {$Dimension_forme_1>$Dimension_forme_2}
							X={$X+{$Dimension_forme_1*2}+$Compensation_X}
						-else
							X={$X+{$Dimension_forme_2*2}+$Compensation_X}
						-endif
					-endif

					 ## 3 ellipses 3 couleurs superposes
					 -if {$Formes==9}
						point1_X={round({$Dimension_forme_1*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$Dimension_forme_1*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$Dimension_forme_2*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$Dimension_forme_2*{sin(pi/180*{$angle_rotation+90})}})}
						-ellipse[-1] $X,$Y,{$Dimension_forme_1},{$Dimension_forme_2},$angle_rotation,1,$R_Figure_1,$V_Figure_1,$B_Figure_1,$Alpha_Figure_1
						point1_X={round({$Dimension_forme_1*{cos(pi/180*$angle_rotation)}})}
						point1_Y={round({$Dimension_forme_1*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$Dimension_forme_2*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$Dimension_forme_2*{sin(pi/180*{$angle_rotation+90})}})}
						-ellipse[-1] $X,$Y,{$Dimension_forme_1},{$Dimension_forme_2},{$angle_rotation+60},1,$R_Figure_2,$V_Figure_2,$B_Figure_2,$Alpha_Figure_2	
						point1_Y={round({$Dimension_forme_1*{sin(pi/180*$angle_rotation)}})}
						point2_X={round({$Dimension_forme_2*{cos(pi/180*{$angle_rotation+90})}})}
						point2_Y={round({$Dimension_forme_2*{sin(pi/180*{$angle_rotation+90})}})}
						R_ellipse3={{$R_Figure_1+$R_Figure_2}*0.5} -if {$R_ellipse3>255} R_ellipse3={$R_ellipse3-255} -endif
						V_ellipse3={{$V_Figure_1+$V_Figure_2}*0.5} -if {$V_ellipse3>255} V_ellipse3={$V_ellipse3-255} -endif
						B_ellipse3={{$B_Figure_1+$B_Figure_2}*0.5} -if {$B_ellipse3>255} B_ellipse3={$B_ellipse3-255} -endif
						Alpha_ellipse3={{$Alpha_Figure_1+$Alpha_Figure_2}*0.5} -if {$Alpha_ellipse3>255} Alpha_ellipse3={$Alpha_ellipse3-255} -endif
						-ellipse[-1] $X,$Y,{$Dimension_forme_1},{$Dimension_forme_2},{$angle_rotation+120},1,$R_ellipse3,$V_ellipse3,$B_ellipse3,$Alpha_ellipse3

						-if {$Dimension_forme_1>$Dimension_forme_2}
							X={$X+{$Dimension_forme_1*2}+$Compensation_X}
						-else
							X={$X+{$Dimension_forme_2*2}+$Compensation_X}
						-endif
					-endif

					compteurX={$compteurX+1}

				-while {$X<{$largeur_image_temporaire+$Depassement}}

			X=$Dimension_forme_1
			compteurX=0
			compteurY={$compteurY+1}

			-if {$Mode_Alterner==3}
				-if {$compteurY%$Alterner_Effet==1}
					-if {$Dimension_forme_1>$Dimension_forme_2}
						Y={$Y+{$Dimension_forme_1*2}+$Compensation_Y}
					-else
						Y={$Y+{$Dimension_forme_2*2}+$Compensation_Y}
					-endif
				-endif
			-endif

			-if {$Mode_Alterner==5}
				-if {{$compteurY+1}%$Alterner_Effet==1}
						R_Figure_1=$R_Figure_1_origine
						V_Figure_1=$V_Figure_1_origine
						B_Figure_1=$B_Figure_1_origine
						Alpha_Figure_1=$Alpha_Figure_1_origine

						R_Figure_2=$R_Figure_2_origine
						V_Figure_2=$V_Figure_2_origine
						B_Figure_2=$B_Figure_2_origine
						Alpha_Figure_2=$Alpha_Figure_2_origine
				-else
						R_Figure_1=$R_Figure_2_origine
						V_Figure_1=$V_Figure_2_origine
						B_Figure_1=$B_Figure_2_origine
						Alpha_Figure_1=$Alpha_Figure_2_origine

						R_Figure_2=$R_Figure_1_origine
						V_Figure_2=$V_Figure_1_origine
						B_Figure_2=$B_Figure_1_origine
						Alpha_Figure_2=$Alpha_Figure_1_origine
				-endif
			-endif

			-if {$Dimension_forme_1>$Dimension_forme_2}
				Y={$Y+{$Dimension_forme_1*2}+$Compensation_Y}
			-else
				Y={$Y+{$Dimension_forme_2*2}+$Compensation_Y}
			-endif


		-while {$Y<{$hauteur_image_temporaire+$Depassement}}

	-if {$deformation>0}		
		-deform[-1] $deformation
	-endif

	-if {$Utiliser_Smooth_Diffusion==1}
		-gimp_diffusion_smoothing[-1] $SD_Sharpness,$SD_Anisotropy,$SD_Gradient_smoothness,$SD_Tensor_smoothness,$SD_Time_step,$SD_Iterations,$SD_Channels
	-endif

	-if {$Resultat==0}
		# rsultat final composition
		-gimp_compose_1530_alpha[-1,-2] 1,0
	-endif


  -endl -done

Masques_geometriques_samj_preview :
	-gimp_split_preview "-Masques_geometriques_samj ${1--2}",$-1




						################################################################
						##                                                            ##
						##                FIN  Masques_geometriques_samj              ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                         KarPaint_samj                      ##
						##                                                            ##
						################################################################


#********** KarPaint_samj **********
##
##                                       Version 1.00 samj 4 octobre 2012
##
#@gimp KarPaint : KarPaint_samj, KarPaint_samj_preview
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Cut - Cut parameters</small>")
#@gimp : Valeur_A = int(25,0,255)
#@gimp : Valeur_B = int(175,0,255)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Kuwahara - Kuwahara parameters</small>")
#@gimp : Taille / Size = int(2,1,8)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Gimp Anisotropic Smoothing - Gimp Anisotropic Smoothing parameters</small>")
#@gimp : Amplitude = float(60,0,1000)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2012/10/04</i>.</small>")

KarPaint_samj :

####### Dclaration des variables

# filtre cut
		Valeur_A=$1
		Valeur_B=$2

# filtre Kuwahara
		K_size=$3
		
# filtre Gimp Anisotropic Smoothing
		Amplitude=$4



####### Ligne de commandes

  -repeat @# -l[$>]

		-remove_opacity[-1]

		-if {$Valeur_A>$Valeur_B}
			-cut[-1] $Valeur_B,$Valeur_A
		-else
			-cut[-1] $Valeur_A,$Valeur_B
		-endif

		-n[-1] 0,255

		-kuwahara[-1] $K_size -kuwahara[-1] $K_size -drawing[-1] 2000 -n[-1] 0,255

		-gimp_anisotropic_smoothing[-1] $Amplitude,0.7,0.3,0.6,1.1,0.8,30,2,0,1,1,1,1


  -endl -done

KarPaint_samj_preview :
	-gimp_split_preview "-KarPaint_samj ${1--2}",$-1



						################################################################
						##                                                            ##
						##                      FIN  KarPaint_samj                    ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                      Test_Twirl_samj                       ##
						##                                                            ##
						################################################################


#********** Test_Twirl_samj **********
##
##	Version 2.00 samj 20121228
##	-Test_Twirl_samj 50,50,-25,1,300,100,0,0,16,0,360,0,255,255,255,0,20,0,0,0,27,1,0
##
#@gimp Test Twirl 1 : Test_Twirl_samj, Test_Twirl_samj(1)
#@gimp : sep = separator(), note = note("<small>Origine</small>")
#@gimp : Position X (%) = float(50,0,100)
#@gimp : Position Y (%) = float(50,0,100)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Twirl - Twirl parameters</small>")
#@gimp : Amplitude = float(0.75,-25,25)
#@gimp : Borders = choice(1,"Black","Nearest","Repeat")
#@gimp : sep = separator(), note = note("<small>Traits / Strokes</small>")
#@gimp : Longueur / Length (Pixels) = int(150,1,4000)
#@gimp : Variations % (Longueur/Length) = float(100,0,1000)
#@gimp : Mode variations = choice(0,"Non / No","Plus / More","Moins / Less","Plus / More [milieu-middle]","Moins / Less [milieu-middle]")
#@gimp : Eloignement du centre (Pixels) = int(0,0,2000)
#@gimp : Nombre de traits / Number of strokes = int(16,1,2160)
#@gimp : Angle (D\303\251part / Start) = float(0,0,360)
#@gimp : Angle (Fin / End) = float(360,0,360)
#@gimp : Couleur/ Color= color(240,60,120,255)
#@gimp : Variation de couleur / Color variation = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Epaisseur / Thickness  = int(20,0,64)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Test_Twirl_samj :

####### Dclaration des variables

	K_X=$1
	K_Y=$2

	## filtre Twirl
	Amplitude=$3
	Borders=$4

		#Traits
	Longueur=$5
	Variations_Longueur=$6
	Mode_variations=$7
	Eloignement_du_centre=$8
	Nombre_de_traits=$9
	Angle_Depart=$10
	Angle_Fin=$11
	R_Couleur=$12
	V_Couleur=$13
	B_Couleur=$14
	A_Couleur=$15
	Variation_de_couleur=$16
	Epaisseur=$17

		#Divers

	Flou_traits=$18
	Spread_traits=$19
	Deform_traits=$20
	blend=$21
	opacite=$22

	Position_X={round({{w}*{$K_X/100}})}
	Position_Y={round({{h}*{$K_Y/100}})}

####### Ligne de commandes		

	-to_rgba

	{w},{h},1,4		## crer une image transparente aux mmes dimensions que l'image d'origine

	Angle=$Angle_Depart

	-if {$Angle_Depart>$Angle_Fin}
		Angle_Fin={$Angle_Fin+360}
	-endif

	increment_theta={{$Angle_Fin-$Angle_Depart}/$Nombre_de_traits}
	
	-if {$Mode_variations==1}
		Variation={{$Longueur/100*$Variations_Longueur}/$Nombre_de_traits}
	-endif	

	-if {$Mode_variations==2}
		Variation={{-$Longueur/1000*$Variations_Longueur}/$Nombre_de_traits}
	-endif

	-if {$Mode_variations==3}
		Variation={{$Longueur/100*$Variations_Longueur}/{$Nombre_de_traits/2}}
	-endif	

	-if {$Mode_variations==4}
		Variation={{-$Longueur/1000*$Variations_Longueur}/{$Nombre_de_traits/2}}
	-endif

	Longueur_calculee=$Longueur
	Nb_Boucle=1

	R_Couleur_origine=$R_Couleur
	V_Couleur_origine=$V_Couleur
	B_Couleur_origine=$B_Couleur
	A_Couleur_origine=$A_Couleur

	-repeat $Nombre_de_traits

		-if {$Variation_de_couleur==1}
				R_Couleur={round({(?(255))})}
				V_Couleur={round({(?(255))})}
				B_Couleur={round({(?(255))})}
				A_Couleur={{round({(?(200))})}+55}
		-endif

		## couleurs nuances
		-if {$Variation_de_couleur>1}

			Valeur_variation_couleur=16

			-if {$Variation_de_couleur==3}
				Valeur_variation_couleur=32
			-endif

			-if {$Variation_de_couleur==4}
				Valeur_variation_couleur=64
			-endif						

			R_Couleur={round({$R_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$R_Couleur>255}
						R_Couleur=$R_Couleur_origine
				-endif
				-if {$R_Couleur<0}
						R_Couleur=$R_Couleur_origine
				-endif	

			V_Couleur={round({$V_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$V_Couleur>255}
						V_Couleur=$V_Couleur_origine
				-endif
				-if {$V_Couleur<0}
						V_Couleur=$V_Couleur_origine
				-endif

			B_Couleur={round({$B_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$B_Couleur>255}
						B_Couleur=$B_Couleur_origine
				-endif
				-if {$B_Couleur<0}
						B_Couleur=$B_Couleur_origine
				-endif

		-endif

		Debut_X={$Position_X+{round(cos(pi/180*$Angle)*$Eloignement_du_centre)}}
		Debut_Y={$Position_Y+{round(sin(pi/180*$Angle)*$Eloignement_du_centre)}}

		Extremite_X={$Position_X+{round(cos(pi/180*$Angle)*{$Longueur_calculee+$Eloignement_du_centre})}}
		Extremite_Y={$Position_Y+{round(sin(pi/180*$Angle)*{$Longueur_calculee+$Eloignement_du_centre})}}

		-line[-1] $Debut_X,$Debut_Y,$Extremite_X,$Extremite_Y,1,$R_Couleur,$V_Couleur,$B_Couleur,$A_Couleur

		Angle={$Angle+$increment_theta}

			-if {{$Mode_variations==1}||{$Mode_variations==2}}
				Longueur_calculee={$Longueur_calculee+$Variation}
			-endif

			-if {{$Mode_variations==3}||{$Mode_variations==4}}
				-if {$Nb_Boucle<{$Nombre_de_traits/2}}
					Longueur_calculee={$Longueur_calculee+$Variation}
				-else
					Longueur_calculee={$Longueur_calculee-$Variation}
				-endif
			-endif	

		Nb_Boucle={$Nb_Boucle+1}

	-done

	-if {$Epaisseur>0}
		-dilate_circ[-1] $Epaisseur
	-endif

	-twirl[-1] $Amplitude,{$K_X/100},{$K_Y/100},$Borders	

	-blur[-1] $Flou_traits

	-spread[-1] $Spread_traits

	-deform[-1] $Deform_traits

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif




						################################################################
						##                                                            ##
						##                    FIN  Test_Twirl_samj                    ##
						##                                                            ##
						################################################################





						################################################################
						##                                                            ##
						##                    Tests_Contours_samj                     ##
						##                                                            ##
						################################################################


#********** Tests_Contours_samj **********
##
##	Version 1.00 samj 12 octobre 2012
##
#@gimp Tests Contours : Tests_Contours_samj, Tests_Contours_samj_preview
#@gimp : sep = separator(), note = note("<small>Rendu - Rendering</small>")
#@gimp : Rendu / Rendering = choice(0,"Edge Offsets","Edge Offsets & Isophotes","Isophotes")
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Edges Offsets - Edges Offsets parameters</small>")
#@gimp : Smoothness = float(0,0,10)
#@gimp : Threshold = float(15,0,50)
#@gimp : Scale = int(4,0,32)
#@gimp : Thickness = int(1,0,16)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Filtre Isophotes - Isophotes parameters</small>")
#@gimp : Levels = int(40,1,256)
#@gimp : Smoothness = float(1,0,5)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Gimp Anisotropic Smoothing - Gimp Anisotropic Smoothing parameters</small>")
#@gimp : Amplitude = float(1000,0,3000)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(0.7,0,1)
#@gimp : Inversion - Invert = bool(false)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Tests_Contours_samj :

####### Dclaration des variables

				Rendu=$1

	##Filtre Edges Offsets
				EO_Smoothness=$2
				EO_Threshold=$3
				EO_Scale=$4
				EO_Thickness=$5
	EO_Negative_colors=0

	##Filtre Isophotes
				Isophotes_Levels=$6
				Isophotes_Smoothness=$7
	Isophotes_Filling=0

	##Filtre Gimp Anisotropic Smoothing
				Amplitude=$8
				
	##Blend
				blend=$9  ## attention $9 est utilis dans "preview"
				opacite=$10
				invert=$11

	largeur_origine={w}
	hauteur_origine={h}


####### Ligne de commandes

  -repeat @# -l[$>]
  
 		-if {$Rendu==0} 
			--gimp_edge_offsets $EO_Smoothness,$EO_Threshold,$EO_Scale,$EO_Thickness,$EO_Negative_colors
			-gimp_anisotropic_smoothing[-1] $Amplitude,0.7,0.3,0.6,1.1,0.8,30,2,0,1,1,1,1
		-endif
		
		-if {$Rendu==1}
			--gimp_edge_offsets $EO_Smoothness,$EO_Threshold,$EO_Scale,$EO_Thickness,$EO_Negative_colors
			-gimp_anisotropic_smoothing[-1] $Amplitude,0.7,0.3,0.6,1.1,0.8,30,2,0,1,1,1,1		
			-gimp_isophotes[0] $Isophotes_Levels,$Isophotes_Smoothness,$Isophotes_Filling
			-gimp_anisotropic_smoothing[-1] $Amplitude,0.7,0.3,0.6,1.1,0.8,30,2,0,1,1,1,1
		-endif

		-if {$Rendu==2}
			--gimp_isophotes[0] $Isophotes_Levels,$Isophotes_Smoothness,$Isophotes_Filling
			-gimp_anisotropic_smoothing[-1] $Amplitude,0.7,0.3,0.6,1.1,0.8,30,2,0,1,1,1,1
		-endif		
		
		##-add[-1,-2]

		-if {$blend==0} -reverse[-1,-2] -endif
		-if {$blend==1} -gimp_compose_1530_alpha[-2,-1] $opacite,$invert -endif		
		-if {$blend==2} -gimp_compose_1530_average[-2,-1] $opacite,$invert -endif		
		-if {$blend==3} -gimp_compose_1530_colorburn[-2,-1] $opacite,$invert -endif		
		-if {$blend==4} -gimp_compose_1530_darken[-2,-1] $opacite,$invert -endif		
		-if {$blend==5} -gimp_compose_1530_difference[-2,-1] $opacite,$invert -endif
		-if {$blend==6} -gimp_compose_1530_divide[-2,-1] $opacite,$invert -endif
		-if {$blend==7} -gimp_compose_1530_dodge[-2,-1] $opacite,$invert -endif
		-if {$blend==8} -gimp_compose_1530_edges[-2,-1] $opacite,$invert -endif
		-if {$blend==9} -gimp_compose_1530_exclusion[-2,-1] $opacite,$invert -endif
		-if {$blend==10} -gimp_compose_1530_freeze[-2,-1] $opacite,$invert -endif
		-if {$blend==11} -gimp_compose_1530_grainextract[-2,-1] $opacite,$invert -endif
		-if {$blend==12} -gimp_compose_1530_grainmerge[-2,-1] $opacite,$invert -endif
		-if {$blend==13} -gimp_compose_1530_hardlight[-2,-1] $opacite,$invert -endif
		-if {$blend==14} -gimp_compose_1530_hue[-2,-1] $opacite,$invert -endif
		-if {$blend==15} -gimp_compose_1530_interpolation[-2,-1] $opacite,$invert -endif
		-if {$blend==16} -gimp_compose_1530_lighten[-2,-1] $opacite,$invert -endif
		-if {$blend==17} -gimp_compose_1530_lightness[-2,-1] $opacite,$invert -endif
		-if {$blend==18} -gimp_compose_1530_luminance[-2,-1] $opacite,$invert -endif
		-if {$blend==19} -compose_1530_median[-2,-1] -endif
		-if {$blend==20} -gimp_compose_1530_multiply[-2,-1] $opacite,$invert -endif
		-if {$blend==21} -gimp_compose_1530_negation[-2,-1] $opacite,$invert -endif
		-if {$blend==22} -gimp_compose_1530_overlay[-2,-1] $opacite,$invert -endif
		-if {$blend==23} -gimp_compose_1530_reflect[-2,-1] $opacite,$invert -endif
		-if {$blend==24} -gimp_compose_1530_saturation[-2,-1] $opacite,$invert -endif
		-if {$blend==25} -gimp_compose_1530_screen[-2,-1] $opacite,$invert -endif
		-if {$blend==26} -gimp_compose_1530_shapeaverage[-2,-1] $opacite,$invert -endif
		-if {$blend==27} -gimp_compose_1530_softlight[-2,-1] $opacite,$invert -endif
		-if {$blend==28} -gimp_compose_1530_stamp[-2,-1] $opacite,$invert -endif
		-if {$blend==29} -gimp_compose_1530_value[-2,-1] $opacite,$invert -endif
		-if {$blend==30} -gimp_compose_1530_xor[-2,-1] $opacite,$invert -endif


  -endl -done

Tests_Contours_samj_preview :
	-gimp_split_preview "-Tests_Contours_samj ${1--2}",$-1 -if {$9==0} -reverse[-1,-2] -endif	
						


						################################################################
						##                                                            ##
						##                 FIN  Tests_Contours_samj                   ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                      toile de Pomp                      ##
						##                                                            ##
						################################################################


#********** toile de Pomp **********
##
##	Dessiner une toile de Pomp version G'MIC le 14 octobre 2012
##	http://www.rar-wallon-garges.ac-versailles.fr/spip.php?article47
##	version 20121227  abandon du "preview" avec : etoile_de_pompei_samj(1)


#@gimp Etoile de Pompei : etoile_de_pompei_samj, etoile_de_pompei_samj(1)
#@gimp : sep = separator(), note = note("<small>Rendu - Rendering</small>")
#@gimp : Position X (%) = float(50,0,100)
#@gimp : Position Y (%) = float(50,0,100)
#@gimp : Angle inclinaison = float(30,0,60)
#@gimp : Dimension = int(64,16,2000)
#@gimp : Couleur / Color  1  = color(135,118,100,255)
#@gimp : Couleur / Color  2  = color(181,135,99,255)
#@gimp : Couleur / Color  3  = color(183,140,105,255)
#@gimp : Couleur / Color  4  = color(144,124,100,255)
#@gimp : Couleurs al\303\251atoires / Random colors = choice("Non / No","RVB / RGB")
#@gimp : Remplir cercle / Fill circle = bool(1)
#@gimp : sep = separator(), note = note("<small>Filtres - Filters</small>")
#@gimp : Spread = float(0,0,10)
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Deform = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(1,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : Inversion - Invert = bool(false)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

etoile_de_pompei_samj :

####### Dclaration des variables

	X={round({{w}*{$1/100}})}
	Y={round({{h}*{$2/100}})}
	Angle_inclinaison=$3
	Dimension=$4

	#carrs
	R_Couleur1=$5
	V_Couleur1=$6
	B_Couleur1=$7
	A_Couleur1=$8

	R_Couleur2=$9
	V_Couleur2=$10
	B_Couleur2=$11
	A_Couleur2=$12

	R_Couleur3=$13
	V_Couleur3=$14
	B_Couleur3=$15
	A_Couleur3=$16

	#cercle
	R_Couleur4=$17
	V_Couleur4=$18
	B_Couleur4=$19
	A_Couleur4=$20

	Couleurs_aleatoires=$21	
	Remplir_cercle=$22

	valeur_spread=$23
	flou=$24
	deformation=$25	

	##Blend
	blend=$26
	opacite=$27
	invert=$28

	largeur_origine={w}
	hauteur_origine={h}	

	Rayon_Cercle_1=$Dimension ## cercle hexagone
	Rayon_Cercle_2={{{2*$Dimension*$Dimension}-{2*$Dimension*$Dimension*{cos(pi/180*150)}}}^0.5} ## cercle carrs
	Rayon_Cercle_3={$Dimension+{$Dimension*{3^0.5}}} ## cercle triangles

	#angles degrs
	dephasage_point1_carre={0+$Angle_inclinaison}  ## dphasage point 7
	dephasage_point2_carre={60+$Angle_inclinaison} ## dphasage point 6
	dephasage_point3_carre={45+$Angle_inclinaison}		
	dephasage_point4_carre={15+$Angle_inclinaison}
	dephasage_point5_triangle={30+$Angle_inclinaison}



####### Ligne de commandes

  -repeat @# -l[$>]

		$largeur_origine,$hauteur_origine,1,4

		#Couleurs alatoires
		-if {$Couleurs_aleatoires==1} #RVB / RGB
				R_Couleur3={round(?(0,255))}
				V_Couleur3={round(?(0,255))}
				B_Couleur3={round(?(0,255))}
				R_Couleur4={round(?(0,255))}
				V_Couleur4={round(?(0,255))}
				B_Couleur4={round(?(0,255))}							
		-endif

		-if {$Remplir_cercle==1} 
			## tracer le cercle extrieur
			-ellipse[-1] $X,$Y,$Rayon_Cercle_3,$Rayon_Cercle_3,0,1,$R_Couleur4,$V_Couleur4,$B_Couleur4,$A_Couleur4
		-endif

		-ellipse[-1] $X,$Y,$Rayon_Cercle_1,$Rayon_Cercle_1,0,1,$R_Couleur3,$V_Couleur3,$B_Couleur3,$A_Couleur3

		-repeat 6

				#Couleurs alatoires
				-if {$Couleurs_aleatoires==1} #RVB / RGB
						R_Couleur1={round(?(0,255))}
						V_Couleur1={round(?(0,255))}
						B_Couleur1={round(?(0,255))}	
						R_Couleur2={round(?(0,255))}
						V_Couleur2={round(?(0,255))}
						B_Couleur2={round(?(0,255))}
						R_Couleur3={round(?(0,255))}
						V_Couleur3={round(?(0,255))}
						B_Couleur3={round(?(0,255))}						
				-endif

				point1_X={round({$Rayon_Cercle_1*{cos(pi/180*$dephasage_point1_carre)}})}
				point1_Y={round({$Rayon_Cercle_1*{sin(pi/180*$dephasage_point1_carre)}})}
				point2_X={round({$Rayon_Cercle_1*{cos(pi/180*{$dephasage_point2_carre})}})}
				point2_Y={round({$Rayon_Cercle_1*{sin(pi/180*{$dephasage_point2_carre})}})}
				point3_X={round({$Rayon_Cercle_2*{cos(pi/180*{$dephasage_point3_carre})}})}
				point3_Y={round({$Rayon_Cercle_2*{sin(pi/180*{$dephasage_point3_carre})}})}
				point4_X={round({$Rayon_Cercle_2*{cos(pi/180*{$dephasage_point4_carre})}})}
				point4_Y={round({$Rayon_Cercle_2*{sin(pi/180*{$dephasage_point4_carre})}})}

				-polygon[-1] 4,{$X+$point1_X},{$Y+$point1_Y},{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},{$X+$point4_X},{$Y+$point4_Y},1,$R_Couleur1,$V_Couleur1,$B_Couleur1,$A_Couleur1

				point5_X={round({$Rayon_Cercle_3*{cos(pi/180*{$dephasage_point5_triangle})}})}
				point5_Y={round({$Rayon_Cercle_3*{sin(pi/180*{$dephasage_point5_triangle})}})}

				-polygon[-1] 3,{$X+$point3_X},{$Y+$point3_Y},{$X+$point4_X},{$Y+$point4_Y},{$X+$point5_X},{$Y+$point5_Y},1,$R_Couleur2,$V_Couleur2,$B_Couleur2,$A_Couleur2

				point6_X={round({$Rayon_Cercle_3*{cos(pi/180*{$dephasage_point2_carre})}})}
				point6_Y={round({$Rayon_Cercle_3*{sin(pi/180*{$dephasage_point2_carre})}})}

				-polygon[-1] 3,{$X+$point2_X},{$Y+$point2_Y},{$X+$point3_X},{$Y+$point3_Y},{$X+$point6_X},{$Y+$point6_Y},1,$R_Couleur3,$V_Couleur3,$B_Couleur3,$A_Couleur3

				point7_X={round({$Rayon_Cercle_3*{cos(pi/180*{$dephasage_point1_carre})}})}
				point7_Y={round({$Rayon_Cercle_3*{sin(pi/180*{$dephasage_point1_carre})}})}

				-polygon[-1] 3,{$X+$point1_X},{$Y+$point1_Y},{$X+$point4_X},{$Y+$point4_Y},{$X+$point7_X},{$Y+$point7_Y},1,$R_Couleur3,$V_Couleur3,$B_Couleur3,$A_Couleur3
		
				dephasage_point1_carre={$dephasage_point1_carre+60}
				dephasage_point2_carre={$dephasage_point2_carre+60}
				dephasage_point3_carre={$dephasage_point3_carre+60}
				dephasage_point4_carre={$dephasage_point4_carre+60}
				dephasage_point5_triangle={$dephasage_point5_triangle+60}
		-done

		-spread[-1] $valeur_spread
		
		-blur[-1] $flou
		
		-deform[-1] $deformation	

		##-add[-1,-2]

		-if {$blend==0} -reverse[-1,-2] -endif
		-if {$blend==1} -gimp_compose_1530_alpha[-2,-1] $opacite,$invert -endif		
		-if {$blend==2} -gimp_compose_1530_average[-2,-1] $opacite,$invert -endif		
		-if {$blend==3} -gimp_compose_1530_colorburn[-2,-1] $opacite,$invert -endif		
		-if {$blend==4} -gimp_compose_1530_darken[-2,-1] $opacite,$invert -endif		
		-if {$blend==5} -gimp_compose_1530_difference[-2,-1] $opacite,$invert -endif
		-if {$blend==6} -gimp_compose_1530_divide[-2,-1] $opacite,$invert -endif
		-if {$blend==7} -gimp_compose_1530_dodge[-2,-1] $opacite,$invert -endif
		-if {$blend==8} -gimp_compose_1530_edges[-2,-1] $opacite,$invert -endif
		-if {$blend==9} -gimp_compose_1530_exclusion[-2,-1] $opacite,$invert -endif
		-if {$blend==10} -gimp_compose_1530_freeze[-2,-1] $opacite,$invert -endif
		-if {$blend==11} -gimp_compose_1530_grainextract[-2,-1] $opacite,$invert -endif
		-if {$blend==12} -gimp_compose_1530_grainmerge[-2,-1] $opacite,$invert -endif
		-if {$blend==13} -gimp_compose_1530_hardlight[-2,-1] $opacite,$invert -endif
		-if {$blend==14} -gimp_compose_1530_hue[-2,-1] $opacite,$invert -endif
		-if {$blend==15} -gimp_compose_1530_interpolation[-2,-1] $opacite,$invert -endif
		-if {$blend==16} -gimp_compose_1530_lighten[-2,-1] $opacite,$invert -endif
		-if {$blend==17} -gimp_compose_1530_lightness[-2,-1] $opacite,$invert -endif
		-if {$blend==18} -gimp_compose_1530_luminance[-2,-1] $opacite,$invert -endif
		-if {$blend==19} -compose_1530_median[-2,-1] -endif
		-if {$blend==20} -gimp_compose_1530_multiply[-2,-1] $opacite,$invert -endif
		-if {$blend==21} -gimp_compose_1530_negation[-2,-1] $opacite,$invert -endif
		-if {$blend==22} -gimp_compose_1530_overlay[-2,-1] $opacite,$invert -endif
		-if {$blend==23} -gimp_compose_1530_reflect[-2,-1] $opacite,$invert -endif
		-if {$blend==24} -gimp_compose_1530_saturation[-2,-1] $opacite,$invert -endif
		-if {$blend==25} -gimp_compose_1530_screen[-2,-1] $opacite,$invert -endif
		-if {$blend==26} -gimp_compose_1530_shapeaverage[-2,-1] $opacite,$invert -endif
		-if {$blend==27} -gimp_compose_1530_softlight[-2,-1] $opacite,$invert -endif
		-if {$blend==28} -gimp_compose_1530_stamp[-2,-1] $opacite,$invert -endif
		-if {$blend==29} -gimp_compose_1530_value[-2,-1] $opacite,$invert -endif
		-if {$blend==30} -gimp_compose_1530_xor[-2,-1] $opacite,$invert -endif

	## vrification ##	
	##-text_outline[-1] $Rayon_Cercle_3,1,0,13,1,1,255


  -endl -done




						################################################################
						##                                                            ##
						##                    FIN  toile de Pomp                   ##
						##                                                            ##
						################################################################






						################################################################
						##                                                            ##
						##                         Trames_samj                        ##
						##                                                            ##
						################################################################


#********** Trames_samj **********
##
##	Version 1.00  samj 19 octobre 2012
##	Version 1.01  abandon du "preview" avec : Trames_samj(1)
##
##  gmic geo.png -m samj.gmic -Trames_samj 63,255,8,30,3,255,40,1,1,1,0.4,0 -o essai.png
##
#@gimp Trames : Trames_samj, Trames_samj(1)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Cut - Cut parameters</small>")
#@gimp : Valeur A = int(63,0,255)
#@gimp : Valeur B = int(255,0,255)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres DotsBW - DotsBW parameters</small>")
#@gimp : Nb. Scales = int(8,1,32)
#@gimp : Resolution = int(30,1,255)
#@gimp : Radius = float(3,0,16)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Multiply - Multiply parameters</small>")
#@gimp : Multiply = int(255,0,255)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres AutoIndex - AutoIndex parameters</small>")
#@gimp : Nb Colors = int(40,1,255)
#@gimp : Dithering = float(1,0,1)
#@gimp : Method = choice(1,"median-cut","k-means")
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(1,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(0.4,0,1)
#@gimp : Inversion - Invert = bool(false)
#@gimp : sep = separator(), note = note("<small>Param\303\250tres Normalize - Normalize parameters</small>")
#@gimp : Normalize = bool(false)
#@gimp : Valeur C = int(40,0,255)
#@gimp : Valeur D = int(215,0,255)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Trames_samj :

####### Dclaration des variables

# filtre cut
		Valeur_A=$1
		Valeur_B=$2

# filtre dotsbw
		dotsbw_nb_scales=$3
		dotsbw_resolution=$4
		dotsbw_radius=$5

# filtre mul	
		Multiply=$6
		
# filtre autoindex
		autoindex_nb_colors=$7
		autoindex_dithering=$8
		autoindex_method=$9
		

# Blend
		blend=$10
		opacite=$11
		invert=$12	

# normalize	
		Utiliser_normalize=$13
		Valeur_C=$14
		Valeur_D=$15

####### Ligne de commandes

  -repeat @# -l[$>]


		-if {$Valeur_A>$Valeur_B}
			--cut[-1] $Valeur_B,$Valeur_A
		-else
			--cut[-1] $Valeur_A,$Valeur_B
		-endif

		-dotsbw[-1] $dotsbw_nb_scales,$dotsbw_resolution,$dotsbw_radius

		-mul[-1] $Multiply

		-c[-1] 0,255

		-autoindex[-2] $autoindex_nb_colors,$autoindex_dithering,$autoindex_method

		-if {$blend==0} -reverse[-1,-2] -endif
		-if {$blend==1} -gimp_compose_1530_alpha[-2,-1] $opacite,$invert -endif		
		-if {$blend==2} -gimp_compose_1530_average[-2,-1] $opacite,$invert -endif		
		-if {$blend==3} -gimp_compose_1530_colorburn[-2,-1] $opacite,$invert -endif		
		-if {$blend==4} -gimp_compose_1530_darken[-2,-1] $opacite,$invert -endif		
		-if {$blend==5} -gimp_compose_1530_difference[-2,-1] $opacite,$invert -endif
		-if {$blend==6} -gimp_compose_1530_divide[-2,-1] $opacite,$invert -endif
		-if {$blend==7} -gimp_compose_1530_dodge[-2,-1] $opacite,$invert -endif
		-if {$blend==8} -gimp_compose_1530_edges[-2,-1] $opacite,$invert -endif
		-if {$blend==9} -gimp_compose_1530_exclusion[-2,-1] $opacite,$invert -endif
		-if {$blend==10} -gimp_compose_1530_freeze[-2,-1] $opacite,$invert -endif
		-if {$blend==11} -gimp_compose_1530_grainextract[-2,-1] $opacite,$invert -endif
		-if {$blend==12} -gimp_compose_1530_grainmerge[-2,-1] $opacite,$invert -endif
		-if {$blend==13} -gimp_compose_1530_hardlight[-2,-1] $opacite,$invert  -endif
		-if {$blend==14} -gimp_compose_1530_hue[-2,-1] $opacite,$invert -endif
		-if {$blend==15} -gimp_compose_1530_interpolation[-2,-1] $opacite,$invert -endif
		-if {$blend==16} -gimp_compose_1530_lighten[-2,-1] $opacite,$invert -endif
		-if {$blend==17} -gimp_compose_1530_lightness[-2,-1] $opacite,$invert -endif
		-if {$blend==18} -gimp_compose_1530_luminance[-2,-1] $opacite,$invert -endif
		-if {$blend==19} -compose_1530_median[-2,-1] -endif
		-if {$blend==20} -gimp_compose_1530_multiply[-2,-1] $opacite,$invert -endif
		-if {$blend==21} -gimp_compose_1530_negation[-2,-1] $opacite,$invert -endif
		-if {$blend==22} -gimp_compose_1530_overlay[-2,-1] $opacite,$invert -endif
		-if {$blend==23} -gimp_compose_1530_reflect[-2,-1] $opacite,$invert -endif
		-if {$blend==24} -gimp_compose_1530_saturation[-2,-1] $opacite,$invert -endif
		-if {$blend==25} -gimp_compose_1530_screen[-2,-1] $opacite,$invert -endif
		-if {$blend==26} -gimp_compose_1530_shapeaverage[-2,-1] $opacite,$invert -endif
		-if {$blend==27} -gimp_compose_1530_softlight[-2,-1] $opacite,$invert -endif
		-if {$blend==28} -gimp_compose_1530_stamp[-2,-1] $opacite,$invert -endif
		-if {$blend==29} -gimp_compose_1530_value[-2,-1] $opacite,$invert -endif
		-if {$blend==30} -gimp_compose_1530_xor[-2,-1] $opacite,$invert -endif	

		-if {$Utiliser_normalize==1}
				-if {$Valeur_C>$Valeur_D}
					-normalize[-1] $Valeur_D,$Valeur_C
				-else
					-normalize[-1] $Valeur_C,$Valeur_D
				-endif
		-endif
		
  -endl -done




						################################################################
						##                                                            ##
						##                      FIN   Trames_samj                     ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##                    Test_IsoLine3D_samj                     ##
						##                                                            ##
						################################################################


#********** Test_IsoLine3D_samj **********
##
##                                       Version 1.00 samj 20 octobre 2012
##
##  gmic geo.png -isoline3d 50% -col3d[-1] @{-RGB} -gimp_render3d 1024,1024,0.5,0,0,0,90,-100,0,-100,1,0,4 -autocrop 0 -o essai.png
##
#@gimp Test IsoLine3D : Test_IsoLine3D_samj, Test_IsoLine3D_samj_preview
#@gimp : sep = separator(), note = note("<small>Param\303\250tres - Local Normalization - Parameters</small>")
#@gimp : Local Normalization = bool(1)
#@gimp : Amplitude = float(2,0,60)
#@gimp : Radius = int(6,1,64)
#@gimp : Neighborhood smoothness = float(5,0,40)
#@gimp : Average smoothness = float(20,0,40)
#@gimp : Constrain values = bool(1)
#@gimp : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : sep = separator(), note = note("<small>Param\303\250tres IsoLine3d - IsoLine3d parameters</small>")
#@gimp : IsoLine3d (%) = float(100,20,100)
#@gimp : sep = separator(), note = note("<small>Couleur - Color</small>")
#@gimp : Couleur / Color = color(255,0,0,255)
#@gimp : Couleur al\303\251atoire / Random color = choice("Non / No","RVB / RGB","Niveaux de Gris / Grayscale")
#@gimp : sep = separator(), note = note("<small>Rendu 3D - Rendering 3D</small>")
#@gimp : Dimensions (512*X) = int(2,1,8)
#@gimp : X-angle = float(0,0,360)
#@gimp : Y-angle = float(0,0,360)
#@gimp : Z-angle = float(0,0,360)
#@gimp : sep = separator(), note = note("<small>Rendu - Rendering</small>")
#@gimp : Ajustement Dimensions - Autocrop = bool(true)
#@gimp : Type de rendu / Rendering type = choice("Contour","Craie - Chalk")
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2012/10/21</i>.</small>")

Test_IsoLine3D_samj :

####### Dclaration des variables


	Utiliser_Local_Normalization=$1
	L_N_Amplitude=$2
	L_N_Radius=$3
	L_N_Neighborhood_smoothness=$4
	L_N_Average_smoothness=$5
	L_N_Constrain_values=$6
	L_N_Channel=$7

	IsoLine3d_Pourcent=$8

	R_Couleur=$9
	V_Couleur=$10
	B_Couleur=$11
	Alpha_Couleur=$12
	Couleurs_aleatoires=$13
	
	Dimensions=$14
	X_angle=$15
	Y_angle=$16
	Z_angle=$17

	Ajustement_Dimensions=$18
	Type_de_rendu=$19

	largeur_origine={w}
	hauteur_origine={h}
	

####### Ligne de commandes

  -repeat @# -l[$>]

		
		-if {$largeur_origine>$hauteur_origine}
				Dimension_Max=$largeur_origine
				
				-if {$Dimension_Max>2000}
						-resize[-1] 2500,{$hauteur_origine/$largeur_origine*2500},1,1,3
				-endif	
		-else
				Dimension_Max=$hauteur_origine
				
				-if {$Dimension_Max>2000}
						-resize[-1] {$largeur_origine/$hauteur_origine*2500},2500,1,1,3
				-endif
		-endif

		
		#Couleurs alatoires
		-if {$Couleurs_aleatoires==1} #RVB / RGB
				R_Couleur={round(?(0,255))}
				V_Couleur={round(?(0,255))}
				B_Couleur={round(?(0,255))}	
		-endif
		-if {$Couleurs_aleatoires==2} #Niveaux de Gris / Grayscale
				Niveau_de_gris={round(?(0,255))}
				R_Couleur=$Niveau_de_gris
				V_Couleur=$Niveau_de_gris
				B_Couleur=$Niveau_de_gris
		-endif
		
		
		-if {$Utiliser_Local_Normalization==1}
				-gimp_normalize_local[-1] $L_N_Amplitude,$L_N_Radius,$L_N_Neighborhood_smoothness,$L_N_Average_smoothness,$L_N_Constrain_values,$L_N_Channel
		-endif		
		
		-isoline3d[-1] $IsoLine3d_Pourcent
		
		-col3d[-1] $R_Couleur,$V_Couleur,$B_Couleur,$Alpha_Couleur 
		
		-gimp_render3d[-1] {512*$Dimensions},{512*$Dimensions},0.5,$X_angle,$Y_angle,$Z_angle,90,-100,0,-100,1,0,4
		
		-remove_opacity[-1]
		
		-if {$Ajustement_Dimensions==1} 
				-autocrop[-1] 0 
		-endif
		
		{w},{h},1,4
		
		-fill_color[-1] 0,0,0,255
		
		-add[-1,-2]
		
		-if {$Type_de_rendu==1}
				-remove_opacity[-1]
				-blur[-1] {0.25*{1+$Dimensions}}
				-spread[-1] {0.5*{1+$Dimensions}}
		-endif

		
  -endl -done

Test_IsoLine3D_samj_preview :
	-gimp_split_preview "-Test_IsoLine3D_samj ${1--2}",$-1



						################################################################
						##                                                            ##
						##                  FIN   Test_IsoLine3D_samj                 ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                         Grizou_samj                        ##
						##                                                            ##
						################################################################


#********** Grizou_samj **********
##
##                                       Version 1.04 samj 21 dcembre 2012
##
## 20122112 ajout dcomposition
#@gimp Grizou : Grizou_samj, Grizou_samj_preview
#@gimp : sep = separator(), note = note("<small>D\303\251composition/decompose channels</small>")
#@gimp : Mode = choice(0,"RVB/RGB","XYZ 8","HSV 8 : Canal/Channel V","HSL 8 : Canal/Channel L","HSI 8 : Canal/Channel I","YUV 8 : Canal/Channel Y","YCbCr : Canal/Channel Y","Lab 8 : Canal/Channel L","LCH 8 : Canal/Channel L","CMYK : Negatif Canal/Channel K")
#@gimp : sep = separator(), note = note("<small>Canal-Channel : Rouge/Red - X - V - L - I - Y - K</small>")
#@gimp : Cut Valeur 1 = int(0,0,255)
#@gimp : Cut Valeur 2 = int(255,0,255)
#@gimp : Normalize = int(0,0,255)
#@gimp : sep = separator(), note = note("<small>Canal-Channel : Vert/Green - Y[xyz]</small>")
#@gimp : Cut Valeur 1 = int(0,0,255)
#@gimp : Cut Valeur 2 = int(255,0,255)
#@gimp : Normalize = int(0,0,255)
#@gimp : sep = separator(), note = note("<small>Canal-Channel : Bleu/Blue - Z</small>")
#@gimp : Cut Valeur 1 = int(0,0,255)
#@gimp : Cut Valeur 2 = int(255,0,255)
#@gimp : Normalize = int(0,0,255)
#@gimp : sep = separator(), note = note("<small>R+V+B/R+G+B - X+Y+Z</small>")
#@gimp : Cut Valeur 1 = int(0,0,765)
#@gimp : Cut Valeur 2 = int(765,0,765)
#@gimp : Normalize = int(255,0,255)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2012/12/21</i>.</small>")

Grizou_samj :

####### Dclaration des variables

# dcomposition
		Mode_Decomposition=$1

# filtre cut
		Valeur_A=$2
		Valeur_B=$3
		R_Normalize=$4

		Valeur_C=$5
		Valeur_D=$6
		V_Normalize=$7

		Valeur_E=$8
		Valeur_F=$9
		B_Normalize=$10

		Valeur_G=$11
		Valeur_H=$12	

		RVB_RGB_Normalize=$13


####### Ligne de commandes

  -repeat @# -l[$>]


		# RVB
		-if {$Mode_Decomposition==0}

				-to_rgb[-1]

				-split[-1] c

				#rouge
				-if {$Valeur_A>$Valeur_B}
					-cut[-3] $Valeur_B,$Valeur_A
				-else
					-cut[-3] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-3] 0,$R_Normalize 
				-endif

				#vert
				-if {$Valeur_C>$Valeur_D}
					-cut[-2] $Valeur_D,$Valeur_C
				-else
					-cut[-2] $Valeur_C,$Valeur_D
				-endif

				-if {$V_Normalize>0}
					-n[-2] 0,$V_Normalize 
				-endif

				#bleu
				-if {$Valeur_E>$Valeur_F}
					-cut[-1] $Valeur_F,$Valeur_E
				-else
					-cut[-1] $Valeur_E,$Valeur_F
				-endif

				-if {$B_Normalize>0}
					-n[-1] 0,$B_Normalize 
				-endif

				#test 		-append c

				#R+V+B

				-add[-1,-2,-3]
				
				-if {$Valeur_G>$Valeur_H}
					-cut[-1] $Valeur_H,$Valeur_G
				-else
					-cut[-1] $Valeur_G,$Valeur_H
				-endif

				-if {$RVB_RGB_Normalize>0}
					-n[-1] 0,$RVB_RGB_Normalize 
				-endif  

		-endif


		# XYZ
		-if {$Mode_Decomposition==1}

				-to_rgb[-1]

				-rgb2xyz8[-1]

				-split[-1] c

				#rouge X
				-if {$Valeur_A>$Valeur_B}
					-cut[-3] $Valeur_B,$Valeur_A
				-else
					-cut[-3] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-3] 0,$R_Normalize 
				-endif

				#vert Y
				-if {$Valeur_C>$Valeur_D}
					-cut[-2] $Valeur_D,$Valeur_C
				-else
					-cut[-2] $Valeur_C,$Valeur_D
				-endif

				-if {$V_Normalize>0}
					-n[-2] 0,$V_Normalize 
				-endif

				#bleu Z
				-if {$Valeur_E>$Valeur_F}
					-cut[-1] $Valeur_F,$Valeur_E
				-else
					-cut[-1] $Valeur_E,$Valeur_F
				-endif

				-if {$B_Normalize>0}
					-n[-1] 0,$B_Normalize 
				-endif

				#test 		-append c

				#R+V+B X+Y+Z

				-add[-1,-2,-3]

				-if {$Valeur_G>$Valeur_H}
					-cut[-1] $Valeur_H,$Valeur_G
				-else
					-cut[-1] $Valeur_G,$Valeur_H
				-endif

				-if {$RVB_RGB_Normalize>0}
					-n[-1] 0,$RVB_RGB_Normalize 
				-endif  

		-endif		



		# Canal V (HSV 8)
		-if {$Mode_Decomposition==2}

				-to_rgb[-1] 

				-rgb2hsv8[-1] 

				-split[-1] c 

				-rm[-2,-3]

				#rouge canal V
				-if {$Valeur_A>$Valeur_B}
					-cut[-1] $Valeur_B,$Valeur_A
				-else
					-cut[-1] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-1] 0,$R_Normalize 
				-endif

		-endif
  
		# Canal L (HSL 8)
		-if {$Mode_Decomposition==3}

				-to_rgb[-1] 

				-rgb2hsl8[-1] 

				-split[-1] c 

				-rm[-2,-3]

				#rouge canal L
				-if {$Valeur_A>$Valeur_B}
					-cut[-1] $Valeur_B,$Valeur_A
				-else
					-cut[-1] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-1] 0,$R_Normalize 
				-endif

		-endif

		# Canal I (HSI 8)
		-if {$Mode_Decomposition==4}

				-to_rgb[-1] 

				-rgb2hsi8[-1] 

				-split[-1] c 

				-rm[-2,-3]

				#rouge canal I
				-if {$Valeur_A>$Valeur_B}
					-cut[-1] $Valeur_B,$Valeur_A
				-else
					-cut[-1] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-1] 0,$R_Normalize 
				-endif

		-endif

		# Canal Y (YUV 8)
		-if {$Mode_Decomposition==5}

				-to_rgb[-1] 

				-rgb2yuv8[-1] 

				-split[-1] c 

				-rm[-1,-2]

				#rouge canal Y
				-if {$Valeur_A>$Valeur_B}
					-cut[-1] $Valeur_B,$Valeur_A
				-else
					-cut[-1] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-1] 0,$R_Normalize 
				-endif

		-endif

		# Canal Y (YCbCr)
		-if {$Mode_Decomposition==6}

				-to_rgb[-1] 

				-rgb2ycbcr[-1] 

				-split[-1] c 

				-rm[-1,-2]

				#rouge canal Y
				-if {$Valeur_A>$Valeur_B}
					-cut[-1] $Valeur_B,$Valeur_A
				-else
					-cut[-1] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-1] 0,$R_Normalize 
				-endif

		-endif

		# Canal L (Lab)   [ =   Canal L (LCH) ]
		-if {$Mode_Decomposition==7}

				-to_rgb[-1] 

				-rgb2lab8[-1] 

				-split[-1] c 

				-rm[-1,-2]

				#rouge canal L
				-if {$Valeur_A>$Valeur_B}
					-cut[-1] $Valeur_B,$Valeur_A
				-else
					-cut[-1] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-1] 0,$R_Normalize 
				-endif

		-endif	

		# Canal L (LCH)   [ =   Canal L (Lab) ]
		-if {$Mode_Decomposition==8}

				-to_rgb[-1] 

				-rgb2lch8[-1] 

				-split[-1] c 

				-rm[-1,-2]

				#rouge canal L
				-if {$Valeur_A>$Valeur_B}
					-cut[-1] $Valeur_B,$Valeur_A
				-else
					-cut[-1] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-1] 0,$R_Normalize 
				-endif

		-endif	


		# Canal K (CMYK)
		-if {$Mode_Decomposition==9}

				-to_rgb[-1] 

				--rgb2cmyk[-1] 

				-split[-1] c 

				-rm[-2,-3,-4,-5]

				-negative[-1]

				#rouge canal K
				-if {$Valeur_A>$Valeur_B}
					-cut[-1] $Valeur_B,$Valeur_A
				-else
					-cut[-1] $Valeur_A,$Valeur_B
				-endif

				-if {$R_Normalize>0}
					-n[-1] 0,$R_Normalize 
				-endif

		-endif

  -endl -done

Grizou_samj_preview :
	-gimp_split_preview "-Grizou_samj ${1--2}",$-1



						################################################################
						##                                                            ##
						##                       FIN  Grizou_samj                     ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                      Points_Dots_samj                      ##
						##                                                            ##
						################################################################

	
#********** Points_Dots_samj **********
##
##	Version 1.00 samj 8 dcembre 2012
##	Version 1.01  abandon du "preview" avec : Points_Dots_samj(1)
## _________________________________________________________________________________________________________________
##
## Ronounours propose une solution pour viter les boucles, voici l'exemple :
##			foo : -skip ${1=16},${2=24}
##			-r2dy $1 -r {$2*w},{$2*h},1,3 
##			$2,$2 -circle[-1] 50%,50%,30%,1,1 -r[-1] [-2],[-2],1,1,0,2
##			-*
## explication du code :
##			-r2dy $1								mise  l'chelle avec ratio sur l'axe Y , $1 = nombre de pixels
##			-r {$2*w},{$2*h},1,3					agrandir avec le rapport $2 (carrs de $2*$2)
##			$2,$2 -circle[-1] 50%,50%,30%,1,1		crer une image de $2*$2 puis un petit cercle
##			-r[-1] [-2],[-2],1,1,0,2				crer le masque rempli de cercles (C'est l'astuce pour viter les boucles). Paramtres  -resize : width | height | depth | spectrum | interpolation | boundary | ax | ay | az | ac
##																															When 'interpolation==0', 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }
##			-*										mlanger les 2 images 
##
## _________________________________________________________________________________________________________________
##
#@gimp Points_Dots : Points_Dots_samj, Points_Dots_samj(1)
#@gimp : sep = separator(), note = note("<small>Point Dot</small>")
#@gimp : Rayon / Radius (Pixel) = int(4,2,32)
#@gimp : sep = separator(), note = note("<small>Echelle - Scale</small>")
#@gimp : Echelle / Scale = float(1,0.5,4)
#@gimp : sep = separator(), note = note("<small>Masque - Mask</small>")
#@gimp : Fond / Background = color(255,255,255,255)
#@gimp : Points / Dots = color(0,0,0,0)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(1,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : Inversion - Invert = bool(false)
#@gimp : sep = separator(), note = note("<small>Fonctionnement</small>")
#@gimp : Fonctionnement = choice(1,"Origine","Ronounours")
#@gimp : note = note("<small>Voir exemple de Ronounours dans code source</small>")
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj/Ronounours</i>.      Latest update : <i>2013/01/25</i>.</small>")

Points_Dots_samj :

####### Dclaration des variables

	rayon=$1
	echelle=$2

	R_fond=$3
	V_fond=$4
	B_fond=$5
	A_fond=$6

	R_point=$7
	V_point=$8
	B_point=$9
	A_point=$10	

	blend=$11
	opacite=$12
	invert=$13

	Fonctionnement=$14

	diametre_en_pixels={$rayon*2}
	delta1=1
	delta2=1

####### Ligne de commandes

  -repeat @# -l[$>]



		-resize {{w}*$echelle},{{h}*$echelle}

		-resize {{w}/$diametre_en_pixels},{{h}/$diametre_en_pixels}

		-resize {{w}*$diametre_en_pixels},{{h}*$diametre_en_pixels}

		largeur_image_temporaire={w}
		hauteur_image_temporaire={h}

		## fonctionnement origine avec boucles
		-if {$Fonctionnement==0}
		
					$largeur_image_temporaire,$hauteur_image_temporaire,1,4
					-fill_color[-1] $R_fond,$V_fond,$B_fond,$A_fond

					X={$rayon}
					Y={$rayon}

					-do		
							-do
									-ellipse[-1] {$X-$delta1},{$Y-$delta1},{$rayon-$delta2},{$rayon-$delta2},0,1,$R_point,$V_point,$B_point,$A_point
									Y={$Y+$diametre_en_pixels}

							-while {$Y<$hauteur_image_temporaire}

						X={$X+$diametre_en_pixels}
						Y=$rayon

					-while {$X<$largeur_image_temporaire}		
		-endif

		## fonctionnement sans boucle propos par Ronounours
		-if {$Fonctionnement==1}

					$diametre_en_pixels,$diametre_en_pixels,1,4 
					-fill_color[-1] $R_fond,$V_fond,$B_fond,$A_fond
					-ellipse[-1] 50%,50%,{$rayon-$delta2},{$rayon-$delta2},0,1,$R_point,$V_point,$B_point,$A_point
					-resize[-1] [-2],[-2],1,100%,0,2	
		-endif

		-if {$blend==0} -reverse[-1,-2] -endif
		-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,$invert -endif		
		-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,$invert -endif		
		-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,$invert -endif		
		-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,$invert -endif		
		-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,$invert -endif
		-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,$invert -endif
		-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,$invert -endif
		-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,$invert -endif
		-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,$invert -endif
		-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,$invert -endif
		-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,$invert -endif
		-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,$invert -endif
		-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,$invert  -endif
		-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,$invert -endif
		-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,$invert -endif
		-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,$invert -endif
		-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,$invert -endif
		-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,$invert -endif
		-if {$blend==19} -compose_1530_median[-1,-2] -endif
		-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,$invert -endif
		-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,$invert -endif
		-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,$invert -endif
		-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,$invert -endif
		-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,$invert -endif
		-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,$invert -endif
		-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,$invert -endif
		-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,$invert -endif
		-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,$invert -endif
		-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,$invert -endif
		-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,$invert -endif


  -endl -done




						################################################################
						##                                                            ##
						##                    FIN  Points_Dots_samj                   ##
						##                                                            ##
						################################################################


						################################################################
						##                                                            ##
						##                   Filtre_Noel_2012_samj                    ##
						##                                                            ##
						################################################################


#********** Filtre_Noel_2012_samj **********
##
##                                       Version 1.01 samj 12 dcembre 2012
##
## 2012/12/09 origine
## 2012/12/12 ajout mode couleur
## 2013/01/07 enlever supprimer les artefacts
#@gimp Filtre_Noel_2012 : Filtre_Noel_2012_samj, Filtre_Noel_2012_samj_preview
#@gimp : sep = separator(), note = note("<small>Couleurs / Colors</small>")
#@gimp : Rendu / Rendering = choice("Freeze","Colorburn","Softlight","Couleur")
#@gimp : sep = separator(), note = note("<small>Detection</small>")
#@gimp : Valeur origine = float(0.5,0,20)
#@gimp : Difference = float(12,0.5,100)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Opacit\303\251 / Opacity = float(1,0.75,1)
#@gimp : sep = separator(), note = note("Grizou")
#@gimp : sep = separator(), note = note("<small>Rouge/Red</small>")
#@gimp : Cut Valeur 1 = int(0,0,255)
#@gimp : Cut Valeur 2 = int(255,0,255)
#@gimp : Normalize = int(0,0,255)
#@gimp : sep = separator(), note = note("<small>Vert/Green</small>")
#@gimp : Cut Valeur 1 = int(0,0,255)
#@gimp : Cut Valeur 2 = int(255,0,255)
#@gimp : Normalize = int(0,0,255)
#@gimp : sep = separator(), note = note("<small>Bleu/Blue</small>")
#@gimp : Cut Valeur 1 = int(0,0,255)
#@gimp : Cut Valeur 2 = int(255,0,255)
#@gimp : Normalize = int(0,0,255)
#@gimp : sep = separator(), note = note("<small>R+V+B / R+G+B</small>")
#@gimp : Cut Valeur 1 = int(0,0,765)
#@gimp : Cut Valeur 2 = int(765,0,765)
#@gimp : Normalize = int(255,0,255)
#@gimp : sep = separator()
#@gimp : sep = separator(), note = note("<small>Inverser / Invert</small>")
#@gimp : Inverser - Invert = bool(false)
#@gimp : sep = separator(), note = note("<small>Flou / Blur</small>")
#@gimp : Flou / Blur = float(1,0,3)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Filtre_Noel_2012_samj :

####### Dclaration des variables

	Rendu=$1
	
	Valeur_origine=$2
	Difference=$3

	opacite=$4

	## Grizou
		Valeur_A=$5
		Valeur_B=$6
		R_Normalize=$7

		Valeur_C=$8
		Valeur_D=$9
		V_Normalize=$10

		Valeur_E=$11
		Valeur_F=$12
		B_Normalize=$13

		Valeur_G=$14
		Valeur_H=$15	

		RVB_RGB_Normalize=$16	

	Inverser=$17

	Flou=$18


####### Ligne de commandes

  -repeat @# -l[$>]
	
		-if {$Rendu==3} 		## mode couleur , couper pour viter les artefacts lors de la recomposition HSL -> RGB	
			K_im_IM=16
			--gimp_do_nothing[-1]
			-gimp_decompose_channels[-1] 2,0,1,0 IMAX={round({{iM}-$K_im_IM})} IMIN={round({{im}+$K_im_IM})} -rm[-1,-2,-3]
			-if {$IMAX>255} IMAX=255 -endif -if {$IMIN<0} IMIN=0 -endif
		-endif  
		
		--gimp_do_nothing
		--gimp_do_nothing[-1]
		-blur[-2] $Valeur_origine
		-blur[-1] {$Valeur_origine+$Difference}
		
		-gimp_compose_1530_xor[-1,-2] $opacite,0

		-Grizou_samj[-1] 0,$Valeur_A,$Valeur_B,$R_Normalize,$Valeur_C,$Valeur_D,$V_Normalize,$Valeur_E,$Valeur_F,$B_Normalize,$Valeur_G,$Valeur_H,$RVB_RGB_Normalize

		-if {$Inverser==0} -negative[-1] -endif
		
		-blur[-1] $Flou

		-if {$Rendu==0} -gimp_compose_1530_freeze[-1,-2] 1,1 -endif
		
		-if {$Rendu==1} -gimp_compose_1530_colorburn[-1,-2] 1,1 -endif

		-if {$Rendu==2} -gimp_compose_1530_softlight[-1,-2] 1,1 -endif
		
		-if {$Rendu==3} -c[-1,-2] $IMIN,$IMAX -gimp_decompose_channels 2,0,1,0 -remove[-2,-3,-4] -gimp_decompose_channels 2,1,1,0 -endif  ## mode couleur , dcomposition RGB -> HSL , conserver les 3 bons canaux , recomposition HSL -> RGB

	# vrification
	 -text_outline[-1] {$IMIN}-{$IMAX},1,0,13,1,1,255

  -endl -done

Filtre_Noel_2012_samj_preview :
	-gimp_split_preview "-Filtre_Noel_2012_samj ${1--2}",$-1



						################################################################
						##                                                            ##
						##                  FIN  Filtre_Noel_2012_samj                ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##                Simple_Filtre_Noel_2012_samj                ##
						##                                                            ##
						################################################################


#********** Simple_Filtre_Noel_2012_samj **********
##
##                                       Version 1.00 samj 13 dcembre 2012
##
##
#@gimp Simple_Filtre_Noel_2012 : Simple_Filtre_Noel_2012_samj, Simple_Filtre_Noel_2012_samj_preview
#@gimp : sep = separator(), note = note("<small>Couleurs / Colors</small>")
#@gimp : sep = separator(), note = note("<small>Detection</small>")
#@gimp : Valeur origine = float(0.5,0,20)
#@gimp : Difference = float(12,0.5,100)
#@gimp : sep = separator(), note = note("Grizou")
#@gimp : Normalize = int(255,0,255)
#@gimp : sep = separator()
#@gimp : sep = separator(), note = note("<small>Inverser / Invert</small>")
#@gimp : Inverser - Invert = bool(false)
#@gimp : sep = separator(), note = note("<small>Flou / Blur</small>")
#@gimp : Flou / Blur = float(1,0,3)
#@gimp : sep = separator(), note = note("<small>Cut</small>")
#@gimp : Cut_A = int(0,0,255)
#@gimp : Cut_B = int(255,0,255)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Simple_Filtre_Noel_2012_samj :

####### Dclaration des variables

	Rendu=0

	Valeur_origine=$1
	Difference=$2

	opacite=1

	## Grizou
		Valeur_A=0
		Valeur_B=255
		R_Normalize=0

		Valeur_C=0
		Valeur_D=255
		V_Normalize=0

		Valeur_E=0
		Valeur_F=255
		B_Normalize=0

		Valeur_G=0
		Valeur_H=764	

		RVB_RGB_Normalize=$3

	Inverser=$4

	Flou=$5

	Cut_A=$6
	Cut_B=$7


####### Ligne de commandes

  -repeat @# -l[$>]

		--gimp_do_nothing
		-Filtre_Noel_2012_samj[-2] $Rendu,$Valeur_origine,$Difference,$opacite,$Valeur_A,$Valeur_B,$R_Normalize,$Valeur_C,$Valeur_D,$V_Normalize,$Valeur_E,$Valeur_F,$B_Normalize,$Valeur_G,$Valeur_H,$RVB_RGB_Normalize,$Inverser,$Flou,$Cut_A,$Cut_B
		Rendu=3
		-Filtre_Noel_2012_samj[-1] $Rendu,$Valeur_origine,$Difference,$opacite,$Valeur_A,$Valeur_B,$R_Normalize,$Valeur_C,$Valeur_D,$V_Normalize,$Valeur_E,$Valeur_F,$B_Normalize,$Valeur_G,$Valeur_H,$RVB_RGB_Normalize,$Inverser,$Flou,$Cut_A,$Cut_B
		-gimp_compose_1530_multiply[-1,-2] 1,0
		
  -endl -done

Simple_Filtre_Noel_2012_samj_preview :
	-gimp_split_preview "-Simple_Filtre_Noel_2012_samj ${1--2}",$-1



						################################################################
						##                                                            ##
						##              FIN  Simple_Filtre_Noel_2012_samj             ##
						##                                                            ##
						################################################################





						################################################################
						##                                                            ##
						##                       II_Couleurs_samj                     ##
						##                                                            ##
						################################################################

	
#********** II_Couleurs_samj **********
##
##                                       Version 1.00 samj 15 dcembre 2012
##
#@gimp II_Couleurs : II_Couleurs_samj, II_Couleurs_samj_preview
#@gimp : sep = separator(), note = note("<small>Selection</small>")
#@gimp : Tolerance = float(50,0,100)
#@gimp : R= int(127,0,255)
#@gimp : V / G= int(127,0,255)
#@gimp : B= int(127,0,255)
#@gimp : sep = separator(), note = note("<small>II Couleurs / II Colors</small>")
#@gimp : Couleur / Color 1 = color(0,0,0)
#@gimp : Couleur / Color 2 = color(255,255,255)
#@gimp : Inverser / Invert = bool(false)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2012/12/15</i>.</small>")

II_Couleurs_samj :

####### Dclaration des variables

		Tolerance_SC=$1
		R_SC=$2
		V_SC=$3
		B_SC=$4

		R_C1=$5
		V_C1=$6
		B_C1=$7

		R_C2=$8
		V_C2=$9
		B_C2=$10

		Inverser=$11

####### Ligne de commandes

  -repeat @# -l[$>]

		-to_rgb

		-select_color $Tolerance_SC,$R_SC,$V_SC,$B_SC
		-n 0,255

		-if {$Inverser==1}
			-negative
		-endif

		-to_rgb

		-replace_color 0,0,0,0,0,$R_C1,$V_C1,$B_C1 -replace_color 0,0,255,255,255,$R_C2,$V_C2,$B_C2

  -endl -done

II_Couleurs_samj_preview:
	-gimp_split_preview "-II_Couleurs_samj ${1--2}",$-1



						################################################################
						##                                                            ##
						##                     FIN  II_Couleurs_samj                  ##
						##                                                            ##
						################################################################





						################################################################
						##                                                            ##
						##     Fonction star_pattern_samj (pour crer une toile)     ##
						##                                                            ##
						################################################################

##		L'toile est construite autour de 2 cercles, un cercle extrieur pour les sommets, un cercle intrieur pour le raccord des bras. Les bras sont des triangles.
##		Le rsultat est une image avec canal alpha.
##
## 		Latest update : 2012/12/19
##		Exemples d'appel :
##  gmic -m samj.gmic -star_pattern_samj 200,5,39,0,0,0,1,255,255,0,255,0,0,0,255,255,1,255,255,0,255,0,0,0,255,255,0,255,255,255,255,0,0,0,0,255,0 -o etoile.png
##  gmic -m samj.gmic -star_pattern_samj 200,9,39,0,0,0,1,255,255,1,255,1,127,0,255,255,1,255,255,0,255,0,0,0,255,255,0,255,255,255,255,1,127,0,0,255,3 -o etoile.png
				
star_pattern_samj:

	-verbose -

	## Variables
	
	Largeur_en_pixels=$1

	Nombre_de_sommets=$2			## int(5,2,720)
	Pourcentage_Rayon_Interieur=$3	## float(39,0,100)

	Angle_inclinaison=$4			## float(0,0,180)
	Pourcentage_excentricite=$5		## float(0,0,100)
	Angle_excentricite=$6			## float(0,0,360)
	
	Remplir_pointes=$7				## bool(1)
	R_pointes_plein=$8				## color(255,255,0,255)
	V_pointes_plein=$9
	B_pointes_plein=$10
	A_pointes_plein=$11
	
	Contour_pointes=$12				## bool(0)
	R_pointes_contour=$13			## color(0,0,255,255)
	V_pointes_contour=$14
	B_pointes_contour=$15
	A_pointes_contour=$16

	Remplir_cercle_interieur=$17	## bool(1)		
	R_CI_plein=$18					## color(255,255,0,255)
	V_CI_plein=$19
	B_CI_plein=$20
	A_CI_plein=$21

	Contour_cercle_interieur=$22	## bool(0)
	R_CI_contour=$23				## color(0,0,255,255)
	V_CI_contour=$24
	B_CI_contour=$25
	A_CI_contour=$26
	
	
	Remplir_cercle_exterieur=$27	## bool(0)
	R_CE_plein=$28					## color(255,255,255,255)
	V_CE_plein=$29
	B_CE_plein=$30
	A_CE_plein=$31

	Contour_cercle_exterieur=$32	## bool(0)
	R_CE_contour=$33				## color(0,0,0,255)
	V_CE_contour=$34
	B_CE_contour=$35
	A_CE_contour=$36

	Variation_de_couleur=$37		## choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")

	## Variables calcules
	Angle_inclinaison={$Angle_inclinaison-90}
	Rayon_cercle_exterieur={round({{$Largeur_en_pixels-2.5}/2})}
	Rayon_cercle_interieur={round({$Rayon_cercle_exterieur/100*$Pourcentage_Rayon_Interieur})}

	$Largeur_en_pixels,$Largeur_en_pixels,1,4  # image avec canal alpha

	X_centre_cercle_exterieur={round({w/2})}
	Y_centre_cercle_exterieur={round({h/2})}	

	## Cercles extrieurs ##

	-if {$Remplir_cercle_exterieur==1} 
		## tracer le cercle extrieur plein
		-ellipse[-1] $X_centre_cercle_exterieur,$Y_centre_cercle_exterieur,$Rayon_cercle_exterieur,$Rayon_cercle_exterieur,0,1,$R_CE_plein,$V_CE_plein,$B_CE_plein,$A_CE_plein
	-endif

	-if {$Contour_cercle_exterieur==1} 		
		## tracer le cercle extrieur contour	
		-ellipse[-1] $X_centre_cercle_exterieur,$Y_centre_cercle_exterieur,$Rayon_cercle_exterieur,$Rayon_cercle_exterieur,0,1,0xFFFFFF,$R_CE_contour,$V_CE_contour,$B_CE_contour,$A_CE_contour
	-endif

	## Cercles intrieurs ##

	Longueur_excentricite={$Pourcentage_excentricite/100*{$Rayon_cercle_exterieur-$Rayon_cercle_interieur}}
	Decalage_X_excentricite={round({$Longueur_excentricite*{cos(pi/180*$Angle_excentricite)}})}
	Decalage_Y_excentricite={round({$Longueur_excentricite*{sin(pi/180*$Angle_excentricite)}})}
	X_centre_cercle_interieur={$X_centre_cercle_exterieur+$Decalage_X_excentricite}
	Y_centre_cercle_interieur={$Y_centre_cercle_exterieur+$Decalage_Y_excentricite}

	-if {$Remplir_cercle_interieur==1} 
		## tracer le cercle intrieur plein
		-ellipse[-1] $X_centre_cercle_interieur,$Y_centre_cercle_interieur,$Rayon_cercle_interieur,$Rayon_cercle_interieur,0,1,$R_CI_plein,$V_CI_plein,$B_CI_plein,$A_CI_plein
	-endif

	-if {$Contour_cercle_interieur==1} 		
		## tracer le cercle intrieur contour	
		-ellipse[-1] $X_centre_cercle_interieur,$Y_centre_cercle_interieur,$Rayon_cercle_interieur,$Rayon_cercle_interieur,0,1,0xFFFFFF,$R_CI_contour,$V_CI_contour,$B_CI_contour,$A_CI_contour
	-endif

	## toiles ##

	Increment_angle={360/$Nombre_de_sommets}		

	Nb_boucle=$Nombre_de_sommets

		-do
			## toiles point extrieur ##
			X_point_exterieur={$X_centre_cercle_exterieur+{round({$Rayon_cercle_exterieur*{cos({pi/180*{$Increment_angle+$Angle_inclinaison}})}})}}
			Y_point_exterieur={$Y_centre_cercle_exterieur+{round({$Rayon_cercle_exterieur*{sin({pi/180*{$Increment_angle+$Angle_inclinaison}})}})}}

			## toiles points intrieurs ##				
			X_point_interieur_1={$X_centre_cercle_interieur+{round({$Rayon_cercle_interieur*{cos({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_sommets}}})}})}}
			Y_point_interieur_1={$Y_centre_cercle_interieur+{round({$Rayon_cercle_interieur*{sin({pi/180*{$Increment_angle+$Angle_inclinaison+{180/$Nombre_de_sommets}}})}})}}
			X_point_interieur_2={$X_centre_cercle_interieur+{round({$Rayon_cercle_interieur*{cos({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_sommets}}})}})}}
			Y_point_interieur_2={$Y_centre_cercle_interieur+{round({$Rayon_cercle_interieur*{sin({pi/180*{$Increment_angle+$Angle_inclinaison-{180/$Nombre_de_sommets}}})}})}}

			## remplir couleur unie
			-if {$Variation_de_couleur==0}

				-if {$Remplir_pointes==1} 
					## tracer les pointes plein
					-polygon[-1] 3,$X_point_exterieur,$Y_point_exterieur,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,$R_pointes_plein,$V_pointes_plein,$B_pointes_plein,$A_pointes_plein
				-endif

				-if {$Contour_pointes==1} 				
					## tracer les pointes contour
					-polygon[-1] 3,$X_point_exterieur,$Y_point_exterieur,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,0xFFFFFF,$R_pointes_contour,$V_pointes_contour,$B_pointes_contour,$A_pointes_contour
				-endif

			-endif

			## remplir couleurs alatoires
			-if {$Variation_de_couleur==1}

				-if {$Remplir_pointes==1} 
					## tracer les pointes plein
					-polygon[-1] 3,$X_point_exterieur,$Y_point_exterieur,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))},$A_pointes_plein
				-endif

				-if {$Contour_pointes==1} 				
					## tracer les pointes contour
					-polygon[-1] 3,$X_point_exterieur,$Y_point_exterieur,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,0xFFFFFF,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))},$A_pointes_contour
				-endif

			-endif

			## couleurs nuances
			-if {$Variation_de_couleur>1}

				Valeur_variation_couleur=16

				-if {$Variation_de_couleur==3}
					Valeur_variation_couleur=32
				-endif

				-if {$Variation_de_couleur==4}
					Valeur_variation_couleur=64
				-endif						

				R_pointes_plein={round({$R_pointes_plein+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$R_pointes_plein>255}
							R_pointes_plein=$R_pointes_plein
					-endif
					-if {$R_pointes_plein<0}
							R_pointes_plein=$R_pointes_plein
					-endif	

				V_pointes_plein={round({$V_pointes_plein+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$V_pointes_plein>255}
							V_pointes_plein=$V_pointes_plein
					-endif
					-if {$V_pointes_plein<0}
							V_pointes_plein=$V_pointes_plein
					-endif

				B_pointes_plein={round({$B_pointes_plein+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$B_pointes_plein>255}
							B_pointes_plein=$B_pointes_plein
					-endif
					-if {$B_pointes_plein<0}
							B_pointes_plein=$B_pointes_plein
					-endif

				R_pointes_contour={round({$R_pointes_contour+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$R_pointes_contour>255}
							R_pointes_contour=$R_pointes_contour
					-endif
					-if {$R_pointes_contour<0}
							R_pointes_contour=$R_pointes_contour
					-endif

				V_pointes_contour={round({$V_pointes_contour+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$V_pointes_contour>255}
							V_pointes_contour=$V_pointes_contour
					-endif
					-if {$V_pointes_contour<0}
							V_pointes_contour=$V_pointes_contour
					-endif								

				B_pointes_contour={round({$B_pointes_contour+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$B_pointes_contour>255}
							B_pointes_contour=$B_pointes_contour
					-endif
					-if {$B_pointes_contour<0}
							B_pointes_contour=$B_pointes_contour
					-endif

				-if {$Remplir_pointes==1} 
					## tracer les pointes plein
					-polygon[-1] 3,$X_point_exterieur,$Y_point_exterieur,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,$R_pointes_plein,$V_pointes_plein,$B_pointes_plein,$A_pointes_plein
				-endif

				-if {$Contour_pointes==1} 				
					## tracer les pointes contour
					-polygon[-1] 3,$X_point_exterieur,$Y_point_exterieur,$X_point_interieur_1,$Y_point_interieur_1,$X_point_interieur_2,$Y_point_interieur_2,1,0xFFFFFF,$R_pointes_contour,$V_pointes_contour,$B_pointes_contour,$A_pointes_contour			
				-endif

			-endif

			Increment_angle={$Increment_angle+{360/$Nombre_de_sommets}}

			Nb_boucle={$Nb_boucle-1}

		-while {$Nb_boucle>0}

	-verbose +

						################################################################
						##                                                            ##
						##  FIN  Fonction star_pattern_samj (pour crer une toile)   ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                    Remplir d'toiles                       ##
						##                                                            ##
						################################################################


##		Chaque toile est construite autour de 2 cercles, un cercle extrieur pour les sommets, un cercle intrieur pour le raccord des bras.
## 		Le 18 dcembre 2012
##		http://www.gimpchat.com/viewtopic.php?f=9&t=5068
##		version 1.01  abandon du "preview" avec : Remplir_Etoiles_samj(1)

#@gimp Remplir_Etoiles : Remplir_Etoiles_samj, Remplir_Etoiles_samj(1)
#@gimp : sep = separator(), note = note("<small>\303\251toiles / stars</small>")
#@gimp : Nombre = int(25,1,100)
#@gimp : Nombre de sommets / Branches min. = int(5,2,720)
#@gimp : Nombre de sommets / Branches max. = int(8,2,720)
#@gimp : Rayon cercle ext\303\251rieur / Outer circle radius min. = int(40,16,2000)
#@gimp : Rayon cercle ext\303\251rieur / Outer circle radius max. = int(100,16,2000)
#@gimp : Rayon cercle int\303\251rieur / Inner circle radius (%) min. = float(12,0,100)
#@gimp : Rayon cercle int\303\251rieur / Inner circle radius (%) max. = float(39,0,100)
#@gimp : Excentricit\303\251 / Eccentricity (%) min. = float(0,0,100)
#@gimp : Excentricit\303\251 / Eccentricity (%) max. = float(12,0,100)
#@gimp : Angle excentricit\303\251 / Eccentricity angle min. = float(0,0,360)
#@gimp : Angle excentricit\303\251 / Eccentricity angle max. = float(360,0,360)
#@gimp : Couleur = color(255,255,0,200)
#@gimp : Branches : Variation de couleur / Color variation = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Stars : Couleurs al\303\251atoires / Random colors = bool(false)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(1,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")


Remplir_Etoiles_samj:

####### Dclaration des variables

	Nombre_etoiles=$1
	Nombre_de_sommets_min=$2
	Nombre_de_sommets_max=$3
	Rayon_cercle_exterieur_min=$4
	Rayon_cercle_exterieur_max=$5
	Rayon_cercle_interieur_min=$6
	Rayon_cercle_interieur_max=$7
	Excentricite_min=$8
	Excentricite_max=$9
	Angle_excentricite_min=$10
	Angle_excentricite_max=$11
	R_Couleur=$12
	V_Couleur=$13
	B_Couleur=$14
	A_Couleur=$15
	V_D_C=$16
	Couleurs_aleatoires=$17

	Flou_etoile=$18
	Spread_etoile=$19
	Deform_etoile=$20

	blend=$21
	opacite=$22

	# Variables calcules
	Largeur_origine={w}
	Hauteur_origine={h}

	-if {$Nombre_de_sommets_min>$Nombre_de_sommets_max}
		min=$Nombre_de_sommets_max
		Nombre_de_sommets_max=$Nombre_de_sommets_min
		Nombre_de_sommets_min=$min
	-endif		

	-if {$Rayon_cercle_exterieur_min>$Rayon_cercle_exterieur_max}
		min=$Rayon_cercle_exterieur_max
		Rayon_cercle_exterieur_max=$Rayon_cercle_exterieur_min
		Rayon_cercle_exterieur_min=$min
	-endif

	-if {$Rayon_cercle_interieur_min>$Rayon_cercle_interieur_max}
		min=$Rayon_cercle_interieur_max
		Rayon_cercle_interieur_max=$Rayon_cercle_interieur_min
		Rayon_cercle_interieur_min=$min
	-endif

	-if {$Excentricite_min>$Excentricite_max}
		min=$Excentricite_max
		Excentricite_max=$Excentricite_min
		Excentricite_min=$min
	-endif

	-if {$Angle_excentricite_min>$Angle_excentricite_max}
		min=$Angle_excentricite_max
		Angle_excentricite_max=$Angle_excentricite_min
		Angle_excentricite_min=$min
	-endif	

####### Ligne de commandes		

		-to_rgba

		$Largeur_origine,$Hauteur_origine,1,4

			-repeat $Nombre_etoiles

				$Largeur_origine,$Hauteur_origine,1,4

				-if {$Couleurs_aleatoires==1}
						R_Couleur={round({(?(255))})}
						V_Couleur={round({(?(255))})}
						B_Couleur={round({(?(255))})}
						#A_Couleur={round({(?(255))})}  # utiliser alpha couleur principale
				-endif				

				# Variables fonction -star_pattern_samj		

				Largeur_en_pixels={2*{$Rayon_cercle_exterieur_min+{round(?({$Rayon_cercle_exterieur_max-$Rayon_cercle_exterieur_min}))}}}
				Nombre_de_sommets={$Nombre_de_sommets_min+{round(?({$Nombre_de_sommets_max-$Nombre_de_sommets_min}))}}
				Pourcentage_Rayon_Interieur={$Rayon_cercle_interieur_min+{round(?({$Rayon_cercle_interieur_max-$Rayon_cercle_interieur_min}))}}
				Angle_inclinaison={round(?(0,{360/$Nombre_de_sommets_min}))}				
				Pourcentage_excentricite={$Excentricite_min+{round(?({$Excentricite_max-$Excentricite_min}))}}
				Angle_excentricite={$Angle_excentricite_min+{round(?({$Angle_excentricite_max-$Angle_excentricite_min}))}}

				Remplir_pointes=1
				R_pointes_plein=$R_Couleur
				V_pointes_plein=$V_Couleur
				B_pointes_plein=$B_Couleur
				A_pointes_plein=$A_Couleur

				Contour_pointes=0
				R_pointes_contour=$R_Couleur
				V_pointes_contour=$V_Couleur
				B_pointes_contour=$B_Couleur
				A_pointes_contour=$A_Couleur

				Remplir_cercle_interieur=1
				R_CI_plein=$R_Couleur
				V_CI_plein=$V_Couleur
				B_CI_plein=$B_Couleur
				A_CI_plein=$A_Couleur

				Contour_cercle_interieur=0
				R_CI_contour=$R_Couleur
				V_CI_contour=$V_Couleur
				B_CI_contour=$B_Couleur
				A_CI_contour=$A_Couleur
				
				
				Remplir_cercle_exterieur=0
				R_CE_plein=$R_Couleur
				V_CE_plein=$V_Couleur
				B_CE_plein=$B_Couleur
				A_CE_plein=$A_Couleur

				Contour_cercle_exterieur=0
				R_CE_contour=$R_Couleur
				V_CE_contour=$V_Couleur
				B_CE_contour=$B_Couleur
				A_CE_contour=$A_Couleur

				Variation_de_couleur=$V_D_C	

				-star_pattern_samj $Largeur_en_pixels,$Nombre_de_sommets,$Pourcentage_Rayon_Interieur,$Angle_inclinaison,$Pourcentage_excentricite,$Angle_excentricite,$Remplir_pointes,$R_pointes_plein,$V_pointes_plein,$B_pointes_plein,$A_pointes_plein,$Contour_pointes,$R_pointes_contour,$V_pointes_contour,$B_pointes_contour,$A_pointes_contour,$Remplir_cercle_interieur,$R_CI_plein,$V_CI_plein,$B_CI_plein,$A_CI_plein,$Contour_cercle_interieur,$R_CI_contour,$V_CI_contour,$B_CI_contour,$A_CI_contour,$Remplir_cercle_exterieur,$R_CE_plein,$V_CE_plein,$B_CE_plein,$A_CE_plein,$Contour_cercle_exterieur,$R_CE_contour,$V_CE_contour,$B_CE_contour,$A_CE_contour,$Variation_de_couleur           

				Position_X={{round(?({$Largeur_origine+$Largeur_en_pixels}))}-$Largeur_en_pixels}
				Position_Y={{round(?({$Hauteur_origine+$Largeur_en_pixels}))}-$Largeur_en_pixels}

				#-image[-2] [-1],$Position_X,$Position_Y,0,0,1,[-1]
				#-image[-2] [-1],$Position_X,$Position_Y,0,0,1
				-image[-2] [-1],$Position_X,$Position_Y

				-rm[-1]

				-gimp_compose_1530_alpha[-1,-2] 1,1

			-done

		-blur[-1] $Flou_etoile

		-spread[-1] $Spread_etoile

		-deform[-1] $Deform_etoile

		-if {$blend==0} -reverse[-1,-2] -endif
		-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
		-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
		-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
		-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
		-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
		-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
		-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
		-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
		-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
		-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
		-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
		-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
		-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
		-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
		-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
		-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
		-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
		-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
		-if {$blend==19} -compose_1530_median[-1,-2] -endif
		-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
		-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
		-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
		-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
		-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
		-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
		-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
		-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
		-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
		-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
		-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif

		## vrification ##	
		#-text_outline[0] $Nombre_de_sommets,10,10,64,1,1,255,255,255




						################################################################
						##                                                            ##
						##                 FIN  Remplir d'toiles                     ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##     Fonction flower_pattern_samj (pour crer une fleur)    ##
						##                                                            ##
						################################################################

##		La fleur est construite autour de 2 cercles.
##		Du centre des cercles partent des segments fictifs sur lesquels sont centres des ellipses qui reprsentent les ptales.
##		Ces ptales ont des dimensions identiques  l'origine et peuvent varier de faon alatoire en pourcentage : paisseur, longueur, angle.
##		L'loignement du centre de ces ptales est paramtrable.
##		Les couleurs des ptales : Tous de la mme couleur, couleurs alatoires, plusieurs variations nuances autour de la couleur principale.
##		Le rsultat est une image avec canal alpha  dcouper avec un "-autocrop".
##
## 		Latest update : 2012/12/19
##		Exemples d'appel :
##  	gmic -m samj.gmic -flower_pattern_samj 800,30,0,40,36,50,10,40,0,0,0,1,255,255,0,255,1,200,100,50,255,1,100,100,255,255,1,255,255,0,255,1,255,255,255,255,1,100,100,255,255,0 -o fleur.png
##  	gmic -m samj.gmic -flower_pattern_samj 200,30,0,40,36,50,10,40,75,100,0,1,255,255,0,255,1,200,100,50,255,1,100,100,255,255,1,255,255,0,255,1,255,255,255,255,1,255,100,255,255,0 -o fleur.png

flower_pattern_samj:

	-verbose -
	
	## Variables

	Largeur_en_pixels=$1

	Nombre_de_petales=$2				# int(30,2,360)

	Angle_inclinaison=$3				# float(0,0,180)

	Rayon_grand_cercle=$4				# float(40,0,100)
	Rayon_petit_cercle=$5				# float(36,0,100)
	Longueur_petales=$6					# float(50,0,100)
	Largeur_petales=$7					# float(10,0,100)
	Espacement_du_centre=$8				# float(40,0,100)
	Variation_longueur=$9				# int(0,0,100)
	Variation_epaisseur=$10				# int(0,0,100)
	Variation_angle=$11					# int(0,0,5)
	
	Remplir_petales=$12					# bool(1)
	R_Couleur_petales=$13				# color(255,255,0,255)
	V_Couleur_petales=$14
	B_Couleur_petales=$15
	A_Couleur_petales=$16	

	Contour_petales=$17					# bool(1)
	R_Couleur_contour_petales=$18		# color(200,100,50,255)
	V_Couleur_contour_petales=$19
	B_Couleur_contour_petales=$20
	A_Couleur_contour_petales=$21
	
	Remplir_cercle_interieur=$22		# bool(1)	
	R_CI_plein=$23						# color(100,100,255,255)
	V_CI_plein=$24
	B_CI_plein=$25
	A_CI_plein=$26

	Contour_cercle_interieur=$27		# bool(1)
	R_CI_contour=$28					# color(255,255,0,255)
	V_CI_contour=$29
	B_CI_contour=$30
	A_CI_contour=$31
	
	Remplir_cercle_exterieur=$32		# bool(1)
	R_CE_plein=$33						# color(255,255,255,255)
	V_CE_plein=$34
	B_CE_plein=$35
	A_CE_plein=$36

	Contour_cercle_exterieur=$37		# bool(1)
	R_CE_contour=$38					# color(100,100,255,255)
	V_CE_contour=$39
	B_CE_contour=$40
	A_CE_contour=$41

	Variation_de_couleur=$42			# choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")

	## Variables calcules

	X_centre_cercles={round({$Largeur_en_pixels/2})}
	Y_centre_cercles={round({$Largeur_en_pixels/2})}
	Rayon_de_la_fleur={round({$Largeur_en_pixels/8})}
	Rayon_grand_cercle={round({$Rayon_de_la_fleur/100*$Rayon_grand_cercle})}
	Rayon_petit_cercle={round({$Rayon_de_la_fleur/100*$Rayon_petit_cercle})}	
	Longueur_petales={round({$Rayon_de_la_fleur/100*$Longueur_petales})}
	Largeur_petales={round({$Longueur_petales/100*$Largeur_petales})}	
	Espacement_du_centre={round({$Longueur_petales/100*$Espacement_du_centre})}	
	Variation_longueur={$Variation_longueur+1}
	Variation_epaisseur={$Variation_epaisseur+1}
	Variation_angle={$Variation_angle+1}	
	Increment_angle={360/$Nombre_de_petales}
	Increment_angle_petale={360/$Nombre_de_petales}

	###

		$Largeur_en_pixels,$Largeur_en_pixels,1,4  # image avec canal alpha

		Nb_boucle=$Nombre_de_petales
		Index=0


		-do

			## calcul des variations pour obtenir des float##
			Variation_angle_boucle={?(-$Variation_angle,$Variation_angle)}
			Variation_longueur_boucle={?(-$Variation_longueur,$Variation_longueur)}
			Variation_epaisseur_boucle={?(-$Variation_epaisseur,$Variation_epaisseur)}

			## calcul des valeurs suite aux variations
			Longueur_petales_boucle={round({$Longueur_petales+{$Longueur_petales/100*$Variation_longueur_boucle}})}
			Largeur_petales_boucle={round({$Largeur_petales+{$Largeur_petales/100*$Variation_epaisseur_boucle}})}			

			angle_petale={{$Increment_angle_petale*$Index}+$Variation_angle_boucle+$Angle_inclinaison}

			Longueur_centre_petale={$Longueur_petales_boucle+$Espacement_du_centre}
			Decalage_X_centre_petale={round({$Longueur_centre_petale*{cos(pi/180*$angle_petale)}})}
			Decalage_Y_centre_petale={round({$Longueur_centre_petale*{sin(pi/180*$angle_petale)}})}
			X_centre_cercle_petale={$X_centre_cercles+$Decalage_X_centre_petale}
			Y_centre_cercle_petale={$Y_centre_cercles+$Decalage_Y_centre_petale}

			## Ptale ##

			## remplir couleur unie
			-if {$Variation_de_couleur==0}

				-if {$Remplir_petales==1} 
					## tracer ptale plein
					-ellipse[-1] $X_centre_cercle_petale,$Y_centre_cercle_petale,$Longueur_petales_boucle,$Largeur_petales_boucle,$angle_petale,1,$R_Couleur_petales,$V_Couleur_petales,$B_Couleur_petales,$A_Couleur_petales
				-endif

				-if {$Contour_petales==1} 
					## tracer ptale contour
					-ellipse[-1] $X_centre_cercle_petale,$Y_centre_cercle_petale,$Longueur_petales_boucle,$Largeur_petales_boucle,$angle_petale,1,0xFFFFFF,$R_Couleur_contour_petales,$V_Couleur_contour_petales,$B_Couleur_contour_petales,$A_Couleur_contour_petales  
				-endif

			-endif

			## remplir couleurs alatoires
			-if {$Variation_de_couleur==1}

				-if {$Remplir_petales==1} 
					## tracer ptale plein
					-ellipse[-1] $X_centre_cercle_petale,$Y_centre_cercle_petale,$Longueur_petales_boucle,$Largeur_petales_boucle,$angle_petale,1,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))},$A_Couleur_petales
				-endif

				-if {$Contour_petales==1} 
					## tracer ptale contour
					-ellipse[-1] $X_centre_cercle_petale,$Y_centre_cercle_petale,$Longueur_petales_boucle,$Largeur_petales_boucle,$angle_petale,1,0xFFFFFF,{round(?(0,255))},{round(?(0,255))},{round(?(0,255))},$A_Couleur_contour_petales
				-endif

			-endif

			## couleurs nuances
			-if {$Variation_de_couleur>1}

				Valeur_variation_couleur=16

				-if {$Variation_de_couleur==3}
					Valeur_variation_couleur=32
				-endif

				-if {$Variation_de_couleur==4}
					Valeur_variation_couleur=64
				-endif						

				R_Couleur_petales={round({$R_Couleur_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$R_Couleur_petales>255}
							R_Couleur_petales=$R_Couleur_petales
					-endif
					-if {$R_Couleur_petales<0}
							R_Couleur_petales=$R_Couleur_petales
					-endif	

				V_Couleur_petales={round({$V_Couleur_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$V_Couleur_petales>255}
							V_Couleur_petales=$V_Couleur_petales
					-endif
					-if {$V_Couleur_petales<0}
							V_Couleur_petales=$V_Couleur_petales
					-endif

				B_Couleur_petales={round({$B_Couleur_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$B_Couleur_petales>255}
							B_Couleur_petales=$B_Couleur_petales
					-endif
					-if {$B_Couleur_petales<0}
							B_Couleur_petales=$B_Couleur_petales
					-endif

				R_Couleur_contour_petales={round({$R_Couleur_contour_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$R_Couleur_contour_petales>255}
							R_Couleur_contour_petales=$R_Couleur_contour_petales
					-endif
					-if {$R_Couleur_contour_petales<0}
							R_Couleur_contour_petales=$R_Couleur_contour_petales
					-endif

				V_Couleur_contour_petales={round({$V_Couleur_contour_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$V_Couleur_contour_petales>255}
							V_Couleur_contour_petales=$V_Couleur_contour_petales
					-endif
					-if {$V_Couleur_contour_petales<0}
							V_Couleur_contour_petales=$V_Couleur_contour_petales
					-endif								

				B_Couleur_contour_petales={round({$B_Couleur_contour_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
					-if {$B_Couleur_contour_petales>255}
							B_Couleur_contour_petales=$B_Couleur_contour_petales
					-endif
					-if {$B_Couleur_contour_petales<0}
							B_Couleur_contour_petales=$B_Couleur_contour_petales
					-endif

				-if {$Remplir_petales==1} 
					## tracer ptale plein
					-ellipse[-1] $X_centre_cercle_petale,$Y_centre_cercle_petale,$Longueur_petales_boucle,$Largeur_petales_boucle,$angle_petale,1,$R_Couleur_petales,$V_Couleur_petales,$B_Couleur_petales,$A_Couleur_petales
				-endif

				-if {$Contour_petales==1} 
					## tracer ptale contour
					-ellipse[-1] $X_centre_cercle_petale,$Y_centre_cercle_petale,$Longueur_petales_boucle,$Largeur_petales_boucle,$angle_petale,1,0xFFFFFF,$R_Couleur_contour_petales,$V_Couleur_contour_petales,$B_Couleur_contour_petales,$A_Couleur_contour_petales
				-endif

			-endif					

			Increment_angle={$Increment_angle+{360/$Nombre_de_petales}}

			Nb_boucle={$Nb_boucle-1}
			Index={$Index+1}

		-while {$Nb_boucle>0}

		##

		-if {$Variation_de_couleur==1}

				R_CI_plein={round(?(0,255))}
				V_CI_plein={round(?(0,255))}
				B_CI_plein={round(?(0,255))}

				R_CI_contour={round(?(0,255))}
				V_CI_contour={round(?(0,255))}
				B_CI_contour={round(?(0,255))}
				
				R_CE_plein={round(?(0,255))}
				V_CE_plein={round(?(0,255))}
				B_CE_plein={round(?(0,255))}

				R_CE_contour={round(?(0,255))}
				V_CE_contour={round(?(0,255))}
				B_CE_contour={round(?(0,255))}
	
		-endif

		## Grand cercle ##	
		-if {$Remplir_cercle_exterieur==1} 
			## tracer Grand cercle plein
			-ellipse[-1] $X_centre_cercles,$Y_centre_cercles,$Rayon_grand_cercle,$Rayon_grand_cercle,0,1,$R_CE_plein,$V_CE_plein,$B_CE_plein,$A_CE_plein
		-endif

		## Cercle extrieur ##		
		-if {$Contour_cercle_exterieur==1} 		
			## tracer Grand cercle contour	
			-ellipse[-1] $X_centre_cercles,$Y_centre_cercles,$Rayon_grand_cercle,$Rayon_grand_cercle,0,1,0xFFFFFF,$R_CE_contour,$V_CE_contour,$B_CE_contour,$A_CE_contour
		-endif

		## Petit cercle ##
		-if {$Remplir_cercle_interieur==1} 
			## tracer Petit cercle plein
			-ellipse[-1] $X_centre_cercles,$Y_centre_cercles,$Rayon_petit_cercle,$Rayon_petit_cercle,0,1,$R_CI_plein,$V_CI_plein,$B_CI_plein,$A_CI_plein
		-endif

		## Cercle intrieur ##		
		-if {$Contour_cercle_interieur==1} 		
			## tracer Petit cercle contour	
			-ellipse[-1] $X_centre_cercles,$Y_centre_cercles,$Rayon_petit_cercle,$Rayon_petit_cercle,0,1,0xFFFFFF,$R_CI_contour,$V_CI_contour,$B_CI_contour,$A_CI_contour
		-endif
		
		-verbose +


						################################################################
						##                                                            ##
						##  FIN  Fonction flower_pattern_samj (pour crer une fleur)  ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                    Remplir de fleurs                       ##
						##                                                            ##
						################################################################


##
## 		Le 21 dcembre 2012
##		version 1.02 
##		version 1.03  abandon du "preview" avec : Remplir_Fleurs_samj(1)

#@gimp Remplir_Fleurs : Remplir_Fleurs_samj, Remplir_Fleurs_samj(1)
#@gimp : sep = separator(), note = note("<small>Fleurs / Flowers</small>")
#@gimp : Nombre de fleurs = int(33,1,100)
#@gimp : 'Rayon' de la fleur / Flower 'radius' min. = int(400,16,2000)
#@gimp : 'Rayon' de la fleur / Flower 'radius' max. = int(800,16,2000)
#@gimp : Nombre de p\303\251tales / Number of petals min. = int(25,2,360)
#@gimp : Nombre de p\303\251tales / Number of petals max. = int(50,2,360)
#@gimp : Rayon cercle 1 / Radius circle 1 (%) min. = float(35,0,100)
#@gimp : Rayon cercle 1 / Radius circle 1 (%) max. = float(45,0,100)
#@gimp : Rayon cercle 2 / Radius circle 2 (%) min. = float(35,0,100)
#@gimp : Rayon cercle 2 / Radius circle 2 (%) max. = float(50,0,100)
#@gimp : Longueur p\303\251tales / Length petals (%) min. = float(40,0,100)
#@gimp : Longueur p\303\251tales / Length petals (%) max. = float(60,0,100)
#@gimp : Largeur p\303\251tales / Width petals (%) min. = float(10,0,100)
#@gimp : Largeur p\303\251tales / Width petals (%) max. = float(15,0,100)
#@gimp : Espacement du centre / Center spacing (%) min. = float(35,0,100)
#@gimp : Espacement du centre / Center spacing (%) max. = float(50,0,100)
#@gimp : Variation longueur / Length variation (%) min. = int(0,0,15)
#@gimp : Variation longueur / Length variation (%) max. = int(10,0,15)
#@gimp : Variation \303\251paisseur / Thickness variation (%) min. = int(0,0,100)
#@gimp : Variation \303\251paisseur / Thickness variation (%) max. = int(5,0,100)
#@gimp : Variation angle (Deg.) min. = int(0,0,5)
#@gimp : Variation angle (Deg.) max. = int(2,0,5)
#@gimp : Couleur = color(255,255,0,255)
#@gimp : Couleur cercle int\303\251rieur = color(100,100,255,255)
#@gimp : Couleur cercle ext\303\251rieur = color(255,255,255,255)
#@gimp : Variation de couleur / Color variation = choice(2,"Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Fleurs/Flowers : Couleurs al\303\251atoires / Random colors = bool(false)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0.5,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")


Remplir_Fleurs_samj:

####### Dclaration des variables

	Nombre_Fleurs=$1

	Rayon_fleur_min=$2
	Rayon_fleur_max=$3	
	Nombre_de_petales_min=$4
	Nombre_de_petales_max=$5
	Rayon_cercle_1_min=$6
	Rayon_cercle_1_max=$7
	Rayon_cercle_2_min=$8
	Rayon_cercle_2_max=$9
	Longueur_petales_min=$10
	Longueur_petales_max=$11
	Largeur_petales_min=$12
	Largeur_petales_max=$13
	Espacement_du_centre_min=$14
	Espacement_du_centre_max=$15
	Variation_longueur_min=$16
	Variation_longueur_max=$17
	Variation_epaisseur_min=$18
	Variation_epaisseur_max=$19
	Variation_angle_min=$20
	Variation_angle_max=$21

	R_Couleur_petales=$22
	V_Couleur_petales=$23
	B_Couleur_petales=$24
	A_Couleur_petales=$25

	R_CI_plein=$26
	V_CI_plein=$27
	B_CI_plein=$28
	A_CI_plein=$29	

	R_CE_plein=$30
	V_CE_plein=$31
	B_CE_plein=$32
	A_CE_plein=$33

	V_D_C=$34
	Couleurs_aleatoires=$35

	Flou_fleur=$36
	Spread_fleur=$37
	Deform_fleur=$38
	
	blend=$39
	opacite=$40

	# Variables calcules
	Largeur_origine={w}
	Hauteur_origine={h}

	-if {$Rayon_fleur_min>$Rayon_fleur_max}
		min=$Rayon_fleur_max
		Rayon_fleur_max=$Rayon_fleur_min
		Rayon_fleur_min=$min
	-endif

	-if {$Nombre_de_petales_min>$Nombre_de_petales_max}
		min=$Nombre_de_petales_max
		Nombre_de_petales_max=$Nombre_de_petales_min
		Nombre_de_petales_min=$min
	-endif

	-if {$Rayon_cercle_1_min>$Rayon_cercle_1_max}
		min=$Rayon_cercle_1_max
		Rayon_cercle_1_max=$Rayon_cercle_1_min
		Rayon_cercle_1_min=$min
	-endif

	-if {$Rayon_cercle_2_min>$Rayon_cercle_2_max}
		min=$Rayon_cercle_2_max
		Rayon_cercle_2_max=$Rayon_cercle_2_min
		Rayon_cercle_2_min=$min
	-endif

	-if {$Longueur_petales_min>$Longueur_petales_max}
		min=$Longueur_petales_max
		Longueur_petales_max=$Longueur_petales_min
		Longueur_petales_min=$min
	-endif

	-if {$Largeur_petales_min>$Largeur_petales_max}
		min=$Largeur_petales_max
		Largeur_petales_max=$Largeur_petales_min
		Largeur_petales_min=$min
	-endif

	-if {$Espacement_du_centre_min>$Espacement_du_centre_max}
		min=$Espacement_du_centre_max
		Espacement_du_centre_max=$Espacement_du_centre_min
		Espacement_du_centre_min=$min
	-endif

	-if {$Variation_longueur_min>$Variation_longueur_max}
		min=$Variation_longueur_max
		Variation_longueur_max=$Variation_longueur_min
		Variation_longueur_min=$min
	-endif
	
	-if {$Variation_epaisseur_min>$Variation_epaisseur_max}
		min=$Variation_epaisseur_max
		Variation_epaisseur_max=$Variation_epaisseur_min
		Variation_epaisseur_min=$min
	-endif

	-if {$Variation_angle_min>$Variation_angle_max}
		min=$Variation_angle_max
		Variation_angle_max=$Variation_angle_min
		Variation_angle_min=$min
	-endif
	

####### Ligne de commandes		

		-to_rgba

		$Largeur_origine,$Hauteur_origine,1,4

			-repeat $Nombre_Fleurs

				$Largeur_origine,$Hauteur_origine,1,4

				-if {$Couleurs_aleatoires==1}
						R_Couleur_petales={round({(?(255))})}
						V_Couleur_petales={round({(?(255))})}
						B_Couleur_petales={round({(?(255))})}
						#A_Couleur={round({(?(255))})}  # utiliser alpha couleur principale

						R_CI_plein={round({(?(255))})}
						V_CI_plein={round({(?(255))})}
						B_CI_plein={round({(?(255))})}
						A_CI_plein={{round({(?(200))})}+55}

						R_CE_plein={round({(?(255))})}
						V_CE_plein={round({(?(255))})}
						B_CE_plein={round({(?(255))})}
						A_CE_plein={{round({(?(200))})}+55}
				-endif

				# Variables fonction -flower_pattern_samj		
					
				Largeur_en_pixels={$Rayon_fleur_min+{round(?({$Rayon_fleur_max-$Rayon_fleur_min}))}}
				
				Nombre_de_petales={$Nombre_de_petales_min+{round(?({$Nombre_de_petales_max-$Nombre_de_petales_min}))}}

				Angle_inclinaison={round(?(0,{360/$Nombre_de_petales_min}))}

				Rayon_grand_cercle={$Rayon_cercle_1_min+{round(?({$Rayon_cercle_1_max-$Rayon_cercle_1_min}))}}
				Rayon_petit_cercle={$Rayon_cercle_2_min+{round(?({$Rayon_cercle_2_max-$Rayon_cercle_2_min}))}}
				Longueur_petales={$Longueur_petales_min+{round(?({$Longueur_petales_max-$Longueur_petales_min}))}}
				Largeur_petales={$Largeur_petales_min+{round(?({$Largeur_petales_max-$Largeur_petales_min}))}}
				Espacement_du_centre={$Espacement_du_centre_min+{round(?({$Espacement_du_centre_max-$Espacement_du_centre_min}))}}
				Variation_longueur={$Variation_longueur_min+{round(?({$Variation_longueur_max-$Variation_longueur_min}))}}
				Variation_epaisseur={$Variation_epaisseur_min+{round(?({$Variation_epaisseur_max-$Variation_epaisseur_min}))}}
				Variation_angle={$Variation_angle_min+{round(?({$Variation_angle_max-$Variation_angle_min}))}}

				Remplir_petales=1
				Contour_petales=0
				R_Couleur_contour_petales=0
				V_Couleur_contour_petales=0		
				B_Couleur_contour_petales=0
				A_Couleur_contour_petales=255	
				Remplir_cercle_interieur=1
				Contour_cercle_interieur=0
				R_CI_contour=0
				V_CI_contour=0
				B_CI_contour=0
				A_CI_contour=255	
				Remplir_cercle_exterieur=1
				Contour_cercle_exterieur=0
				R_CE_contour=0
				V_CE_contour=0
				B_CE_contour=0
				A_CE_contour=255
				Variation_de_couleur=$V_D_C		

				-flower_pattern_samj $Largeur_en_pixels,$Nombre_de_petales,$Angle_inclinaison,$Rayon_grand_cercle,$Rayon_petit_cercle,$Longueur_petales,$Largeur_petales,$Espacement_du_centre,$Variation_longueur,$Variation_epaisseur,$Variation_angle,$Remplir_petales,$R_Couleur_petales,$V_Couleur_petales,$B_Couleur_petales,$A_Couleur_petales,$Contour_petales,$R_Couleur_contour_petales,$V_Couleur_contour_petales,$B_Couleur_contour_petales,$A_Couleur_contour_petales,$Remplir_cercle_interieur,$R_CI_plein,$V_CI_plein,$B_CI_plein,$A_CI_plein,$Contour_cercle_interieur,$R_CI_contour,$V_CI_contour,$B_CI_contour,$A_CI_contour,$Remplir_cercle_exterieur,$R_CE_plein,$V_CE_plein,$B_CE_plein,$A_CE_plein,$Contour_cercle_exterieur,$R_CE_contour,$V_CE_contour,$B_CE_contour,$A_CE_contour,$Variation_de_couleur

				-autocrop[-1]

				#Position_X={{round(?({$Largeur_origine+$Largeur_en_pixels}))}-$Largeur_en_pixels}
				#Position_Y={{round(?({$Hauteur_origine+$Largeur_en_pixels}))}-$Largeur_en_pixels}

				Position_X={{round(?({$Largeur_origine+{w}}))}-{w}}
				Position_Y={{round(?({$Hauteur_origine+{h}}))}-{h}}

				#-image[-2] [-1],$Position_X,$Position_Y,0,0,1,[-1]
				#-image[-2] [-1],$Position_X,$Position_Y,0,0,1
				-image[-2] [-1],$Position_X,$Position_Y

				-rm[-1]

				-gimp_compose_1530_alpha[-1,-2] 1,1

			-done

		-blur[-1] $Flou_fleur

		-spread[-1] $Spread_fleur

		-deform[-1] $Deform_fleur

		-if {$blend==0} -reverse[-1,-2] -endif
		-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
		-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
		-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
		-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
		-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
		-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
		-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
		-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
		-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
		-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
		-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
		-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
		-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
		-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
		-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
		-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
		-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
		-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
		-if {$blend==19} -compose_1530_median[-1,-2] -endif
		-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
		-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
		-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
		-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
		-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
		-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
		-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
		-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
		-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
		-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
		-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif
		
		## vrification ##	
		#-text_outline[0] $Nombre_de_petales,10,10,64,1,1,255,255,255





						################################################################
						##                                                            ##
						##                  FIN  Remplir de fleurs                    ##
						##                                                            ##
						################################################################






						################################################################
						##                                                            ##
						##   Fonction flower_spiral_pattern_samj (crer une fleur)    ##
						##                                                            ##
						################################################################


## 		Latest update : 2012/12/22
##		Ides gnrales
##			La fleur est construite avec des ellipses qui sont rparties sur une spirale tous les x degrs.
##  		Ses ptales ont des dimensions variables selon les angles.
##  		Les couleurs des ptales : Tous de la mme couleur, couleurs alatoires, plusieurs variations nuances autour de la couleur principale.
##			Le rsultat est une image ajuste avec canal alpha.
##		Exemples d'appel :
##  		gmic -m samj.gmic -flower_spiral_pattern_samj 10,16.08,2.5,0,30,50,15,0,0,0,0.1,1,224,208,36,255,1,200,100,50,255,1,224,208,136,255,1,200,100,150,255,1,224,208,236,255,1,200,100,250,255,40,36,0


flower_spiral_pattern_samj :

	-verbose -

	## Variables



		# spirale
	tours=$1							# int(10,1,30)
	increment_theta=$2					# float(16.08,0.1,359.9)
	coeff_dim=$3						# float(1,1,10)
	sens_rotation=$4					# choice(0,"Int. Mode 1","Ext. Mode 1","Int. Mode 2","Ext. Mode 2","Int. Mode 3","Ext. Mode 3","Int. Mode 4","Ext. Mode 4")

		# ptales
	Longueur_petales=$5					# float(30,1,100)
	Largeur_petales=$6					# float(50,1,100)
	Espacement_du_centre=$7				# int(15,1,1000)
	Variation_longueur=$8				# int(0,0,100)
	Variation_epaisseur=$9				# int(0,0,100)
	Variation_angle=$10					# int(0,0,180)
	Agrandissement_petales=$11			# float(0.1,0.1,0.5)

	Remplir_petales=$12					# bool(1)
	R_Couleur_petales=$13				# color(224,208,36,255)
	V_Couleur_petales=$14
	B_Couleur_petales=$15
	A_Couleur_petales=$16

	Contour_petales=$17					# bool(1)
	R_Couleur_contour_petales=$18		# color(200,100,50,255)
	V_Couleur_contour_petales=$19
	B_Couleur_contour_petales=$20
	A_Couleur_contour_petales=$21	

	Remplir_cercle_interieur=$22		# bool(1)
	R_CI_plein=$23						# color(224,208,136,255)
	V_CI_plein=$24
	B_CI_plein=$25
	A_CI_plein=$26

	Contour_cercle_interieur=$27		# bool(1)
	R_CI_contour=$28					# color(200,100,150,255)
	V_CI_contour=$29
	B_CI_contour=$30
	A_CI_contour=$31

	Remplir_cercle_exterieur=$32		# bool(1)
	R_CE_plein=$33						# color(224,208,236,255)
	V_CE_plein=$34
	B_CE_plein=$35
	A_CE_plein=$36

	Contour_cercle_exterieur=$37		# bool(1)
	R_CE_contour=$38					# color(200,100,250,255)
	V_CE_contour=$39
	B_CE_contour=$40
	A_CE_contour=$41

	Rayon_grand_cercle=$42				# int(40,0,1000)
	Rayon_petit_cercle=$43				# float(36,0,100)

	Variation_de_couleur=$44			# choice(0,"Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")	

	## Variables calcules	

	centre_origine_X={round({$tours*{1+{$coeff_dim/10}}*{$Longueur_petales+{$Longueur_petales*{1+{4*$Agrandissement_petales}}}+{$Longueur_petales/100*{$Variation_longueur+1}}}}+$Espacement_du_centre)}		#  optimiser si besoin

	-if {$centre_origine_X>5000}		# limiter les images  10000*10000	
		centre_origine_X=5000
	-endif	

	centre_origine_Y=$centre_origine_X

	Largeur_en_pixels={$centre_origine_X*2}

	coeff_dim={$coeff_dim/100}

	Variation_longueur={$Variation_longueur+1}
	Variation_epaisseur={$Variation_epaisseur+1}
	Variation_angle={$Variation_angle+1}	

	X_precedent=$centre_origine_X
	Y_precedent=$centre_origine_Y
	compteur_boucle=0
	modulo_sens_rotation={$sens_rotation%2}	

	Rayon_petit_cercle={round({$Rayon_grand_cercle/100*$Rayon_petit_cercle})}

	## boucle ordre dcroissant ou croissant
	-if {$modulo_sens_rotation==0} 	
		theta={$tours*360}
		theta_fin=0
		increment_theta={-$increment_theta}
		arret_boucle=0
	-else
		theta=0
		theta_fin={{$tours*360}+$increment_theta}
		arret_boucle=0
	-endif

	##

	$Largeur_en_pixels,$Largeur_en_pixels,1,4  # image avec canal alpha

	-do

		## spirale 

		-if {{$sens_rotation==0}||{$sens_rotation==1}} 
			X={$centre_origine_X+{$coeff_dim*round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}} 
			Y={$centre_origine_Y+{$coeff_dim*round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}} 
		-endif 				

		-if {{$sens_rotation==2}||{$sens_rotation==3}} 
			X={$centre_origine_X+{$coeff_dim*-round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}} 
			Y={$centre_origine_Y+{$coeff_dim*-round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}} 
		-endif 

		-if {{$sens_rotation==4}||{$sens_rotation==5}} 
			X={$centre_origine_X+{$coeff_dim*round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}} 
			Y={$centre_origine_Y+{$coeff_dim*round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}} 
		-endif 

		-if {{$sens_rotation==6}||{$sens_rotation==7}}
			X={$centre_origine_X+{$coeff_dim*-round(cos(pi/180*$theta)+{$theta*sin(pi/180*$theta)})}} 
			Y={$centre_origine_Y+{$coeff_dim*-round(sin(pi/180*$theta)+{$theta*cos(pi/180*$theta)})}} 
		-endif

		## calcul des variations pour obtenir des float##
		Variation_angle_boucle={?(-$Variation_angle,$Variation_angle)}
		Variation_longueur_boucle={?(-$Variation_longueur,$Variation_longueur)}
		Variation_epaisseur_boucle={?(-$Variation_epaisseur,$Variation_epaisseur)}

		## calcul des valeurs suite aux variations
		Longueur_petales_boucle={round({$Longueur_petales+{$Longueur_petales/100*$Variation_longueur_boucle}})}

		Longueur_petales_boucle={$Longueur_petales_boucle*{$tours/3}*{1-{{$coeff_dim/100}*$compteur_boucle}}}			# 20121222 ajout pour avoir une variation de la longueur

		## correction de la dimension en fonction de l'angle theta , coeff. agrandissement ptale = {$theta*20*$coeff_dim/360}
		-if {$Agrandissement_petales>0}
			Longueur_petales_boucle={$Longueur_petales_boucle*{$Agrandissement_petales*$theta*20*$coeff_dim/360}}
		-endif

		Largeur_petales_boucle={round({{$Longueur_petales/100*$Largeur_petales}+{{$Longueur_petales/100*$Largeur_petales}/100*$Variation_epaisseur_boucle}})}

		Largeur_petales_boucle={$Largeur_petales_boucle*{1+{$tours/30}}*{1-{{$coeff_dim/10}*$compteur_boucle}}}			# 20121222 ajout pour avoir une variation de la largeur

		angle_petale={{{$increment_theta*$compteur_boucle}+$Variation_angle_boucle}+0}

		Decalage_X_centre_petale={round({$Espacement_du_centre*{cos(pi/180*$angle_petale)}})}
		Decalage_Y_centre_petale={round({$Espacement_du_centre*{sin(pi/180*$angle_petale)}})}
		X_centre_cercle_petale={$X+$Decalage_X_centre_petale}
		Y_centre_cercle_petale={$Y+$Decalage_Y_centre_petale}

		## remplir couleurs alatoires
		-if {$Variation_de_couleur==1}

			R_Couleur_petales={round(?(0,255))}
			V_Couleur_petales={round(?(0,255))}
			B_Couleur_petales={round(?(0,255))}
			A_Couleur_petales={{round({(?(200))})}+55}

			R_Couleur_contour_petales={round(?(0,255))}
			V_Couleur_contour_petales={round(?(0,255))}
			B_Couleur_contour_petales={round(?(0,255))}
			A_Couleur_contour_petale={{round({(?(200))})}+55}

		-endif

		## couleurs nuances
		-if {$Variation_de_couleur>1}

			Valeur_variation_couleur=16

			-if {$Variation_de_couleur==3}
				Valeur_variation_couleur=32
			-endif

			-if {$Variation_de_couleur==4}
				Valeur_variation_couleur=64
			-endif						

			R_Couleur_petales={round({$R_Couleur_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$R_Couleur_petales>255}
						R_Couleur_petales=$R_Couleur_petales
				-endif
				-if {$R_Couleur_petales<0}
						R_Couleur_petales=$R_Couleur_petales
				-endif	

			V_Couleur_petales={round({$V_Couleur_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$V_Couleur_petales>255}
						V_Couleur_petales=$V_Couleur_petales
				-endif
				-if {$V_Couleur_petales<0}
						V_Couleur_petales=$V_Couleur_petales
				-endif

			B_Couleur_petales={round({$B_Couleur_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$B_Couleur_petales>255}
						B_Couleur_petales=$B_Couleur_petales
				-endif
				-if {$B_Couleur_petales<0}
						B_Couleur_petales=$B_Couleur_petales
				-endif

			R_Couleur_contour_petales={round({$R_Couleur_contour_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$R_Couleur_contour_petales>255}
						R_Couleur_contour_petales=$R_Couleur_contour_petales
				-endif
				-if {$R_Couleur_contour_petales<0}
						R_Couleur_contour_petales=$R_Couleur_contour_petales
				-endif

			V_Couleur_contour_petales={round({$V_Couleur_contour_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$V_Couleur_contour_petales>255}
						V_Couleur_contour_petales=$V_Couleur_contour_petales
				-endif
				-if {$V_Couleur_contour_petales<0}
						V_Couleur_contour_petales=$V_Couleur_contour_petales
				-endif								

			B_Couleur_contour_petales={round({$B_Couleur_contour_petales+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$B_Couleur_contour_petales>255}
						B_Couleur_contour_petales=$B_Couleur_contour_petales
				-endif
				-if {$B_Couleur_contour_petales<0}
						B_Couleur_contour_petales=$B_Couleur_contour_petales
				-endif

		-endif

		-if {$Remplir_petales==1} 
			## tracer ptale plein
			-ellipse[-1] $X_centre_cercle_petale,$Y_centre_cercle_petale,$Longueur_petales_boucle,$Largeur_petales_boucle,$angle_petale,1,$R_Couleur_petales,$V_Couleur_petales,$B_Couleur_petales,$A_Couleur_petales
		-endif

		-if {$Contour_petales==1} 
			## tracer ptale contour
			-ellipse[-1] $X_centre_cercle_petale,$Y_centre_cercle_petale,$Longueur_petales_boucle,$Largeur_petales_boucle,$angle_petale,1,0xFFFFFF,$R_Couleur_contour_petales,$V_Couleur_contour_petales,$B_Couleur_contour_petales,$A_Couleur_contour_petales
		-endif				

		X_precedent=$X 
		Y_precedent=$Y 
		compteur_boucle={$compteur_boucle+1} 
		theta={$theta+$increment_theta} 

		## conditions arrt boucle
		-if {$modulo_sens_rotation==0}
			-if {$theta<$theta_fin}
				arret_boucle=1
			-endif
		-else
			-if {$theta>$theta_fin}
				arret_boucle=1
			-endif
		-endif				

	-while {$arret_boucle==0}	

	## remplir couleurs alatoires
	-if {$Variation_de_couleur==1}

		R_CI_plein={round(?(0,255))}
		V_CI_plein={round(?(0,255))}
		B_CI_plein={round(?(0,255))}
		A_CI_plein={{round({(?(200))})}+55}

		R_CI_contour={round(?(0,255))}
		V_CI_contour={round(?(0,255))}
		B_CI_contour={round(?(0,255))}
		A_CI_contour={{round({(?(200))})}+55}	

		R_CE_plein={round(?(0,255))}
		V_CE_plein={round(?(0,255))}
		B_CE_plein={round(?(0,255))}
		A_CE_plein={{round({(?(200))})}+55}

		R_CE_contour={round(?(0,255))}
		V_CE_contour={round(?(0,255))}
		B_CE_contour={round(?(0,255))}
		A_CE_contour={{round({(?(200))})}+55}

	-endif	

	## Grand cercle ##	

	-if {$Remplir_cercle_exterieur==1} 
		## tracer Grand cercle plein
		-ellipse[-1] $centre_origine_X,$centre_origine_Y,$Rayon_grand_cercle,$Rayon_grand_cercle,0,1,$R_CE_plein,$V_CE_plein,$B_CE_plein,$A_CE_plein
	-endif	

	## Cercle extrieur ##

	-if {$Contour_cercle_exterieur==1} 		
		## tracer Grand cercle contour	
		-ellipse[-1] $centre_origine_X,$centre_origine_Y,$Rayon_grand_cercle,$Rayon_grand_cercle,0,1,0xFFFFFF,$R_CE_contour,$V_CE_contour,$B_CE_contour,$A_CE_contour
	-endif

	## Petit cercle ##

	-if {$Remplir_cercle_interieur==1} 
		## tracer Petit cercle plein
		-ellipse[-1] $centre_origine_X,$centre_origine_Y,$Rayon_petit_cercle,$Rayon_petit_cercle,0,1,$R_CI_plein,$V_CI_plein,$B_CI_plein,$A_CI_plein
	-endif

	## Cercle intrieur ##

	-if {$Contour_cercle_interieur==1} 		
		## tracer Petit cercle contour	
		-ellipse[-1] $centre_origine_X,$centre_origine_Y,$Rayon_petit_cercle,$Rayon_petit_cercle,0,1,0xFFFFFF,$R_CI_contour,$V_CI_contour,$B_CI_contour,$A_CI_contour
	-endif

	-autocrop[-1]

	-verbose +	

						################################################################
						##                                                            ##
						## FIN  Fonction flower_spiral_pattern_samj (crer une fleur) ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##                   Remplir de fleurs II                     ##
						##                                                            ##
						################################################################


##
## 		Le 22 dcembre 2012
##		version 1.01 
##		version 1.02  abandon du "preview" avec : Remplir_Fleurs_2_samj(1)

#@gimp Remplir_Fleurs_2 : Remplir_Fleurs_2_samj, Remplir_Fleurs_2_samj(1)
#@gimp : sep = separator(), note = note("<small>Fleurs / Flowers</small>")
#@gimp : Nombre de fleurs = int(9,1,100)
#@gimp : sep = separator(), note = note("<small>Spirale / Spiral</small>")
#@gimp : Tours / Turns min. = int(10,1,30)
#@gimp : Tours / Turns max. = int(12,1,30)
#@gimp : Increment angulaire / Angular increment min. = float(15,1,359.9)
#@gimp : Increment angulaire / Angular increment max. = float(20,1,359.9)
#@gimp : Coeff. agrandissement / Expansion coefficient min. = float(2,1,10)
#@gimp : Coeff. agrandissement / Expansion coefficient max. = float(3,1,10)
#@gimp : Sens de rotation / Direction of rotation = choice(0,"0","Random 1","Random 2","Random 3","Random 4")
#@gimp : sep = separator(), note = note("<small>Fleur - P\303\251tales / Flower - Petals</small>")
#@gimp : Longueur p\303\251tales / Length petals min. = float(15,1,100)
#@gimp : Longueur p\303\251tales / Length petals max. = float(20,1,100)
#@gimp : Largeur p\303\251tales / Width petals (%) min. = float(15,1,100)
#@gimp : Largeur p\303\251tales / Width petals (%) max. = float(100,1,100)
#@gimp : Espacement du centre / Center spacing min. = int(0,0,100)
#@gimp : Espacement du centre / Center spacing max. = int(15,0,100)
#@gimp : Variation longueur / Length variation (%) min. = int(0,0,100)
#@gimp : Variation longueur / Length variation (%) max. = int(20,0,100)
#@gimp : Variation \303\251paisseur / Thickness variation (%) min. = int(0,0,100)
#@gimp : Variation \303\251paisseur / Thickness variation (%) max. = int(10,0,100)
#@gimp : Variation angle (Deg.) min. = int(0,0,180)
#@gimp : Variation angle (Deg.) max. = int(3,0,180)
#@gimp : Agrandissement p\303\251tales / Expansion petals min. = float(0.1,0.1,0.5)
#@gimp : Agrandissement p\303\251tales / Expansion petals max. = float(0.15,0.1,0.5)
#@gimp : Couleur p\303\251tales = color(248,248,10,255)
#@gimp : sep = separator(), note = note("<small>cercles / circles</small>")
#@gimp : Couleur cercle int\303\251rieur = color(255,255,0,255)
#@gimp : Contours = color(75,75,175,255)
#@gimp : Rayon cercle 1 / Radius circle 1 (%) min. = int(100,0,1000)
#@gimp : Rayon cercle 1 / Radius circle 1 (%) max. = int(150,0,1000)
#@gimp : Rayon cercle 2 / Radius circle 2 (%) = float(80,0,100)
#@gimp : Variation de couleur / Color variation = choice(0,"Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Fleurs/Flowers : Couleurs al\303\251atoires / Random colors = bool(false)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0.5,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

						
Remplir_Fleurs_2_samj:

####### Dclaration des variables

	Nombre_Fleurs=$1

	Tours_min=$2
	Tours_max=$3

	Increment_angulaire_min=$4
	Increment_angulaire_max=$5

	Coeff_agrandissement_min=$6
	Coeff_agrandissement_max=$7

	Sens_de_rotation=$8

	Longueur_petales_min=$9
	Longueur_petales_max=$10

	Largeur_petales_min=$11
	Largeur_petales_max=$12

	Espacement_du_centre_min=$13
	Espacement_du_centre_max=$14

	Variation_longueur_min=$15
	Variation_longueur_max=$16

	Variation_epaisseur_min=$17
	Variation_epaisseur_max=$18

	Variation_angle_min=$19
	Variation_angle_max=$20

	Agrandissement_petales_min=$21
	Agrandissement_petales_max=$22

	R_Couleur_petales=$23
	V_Couleur_petales=$24
	B_Couleur_petales=$25
	A_Couleur_petales=$26

	R_CI_plein=$27
	V_CI_plein=$28
	B_CI_plein=$29
	A_CI_plein=$30

	R_CI_contour=$31
	V_CI_contour=$32
	B_CI_contour=$33
	A_CI_contour=$34

	Rayon_grand_cercle_min={$35*$9/100} # % Longueur_petales_min
	Rayon_grand_cercle_max={$36*$9/100}

	Rayon_petit_cercle=$37

	Variation_de_couleur=$38	

	Couleurs_aleatoires=$39

	Flou_fleur=$40
	Spread_fleur=$41
	Deform_fleur=$42

	blend=$43
	opacite=$44

	# Variables calcules
	Largeur_origine={w}
	Hauteur_origine={h}
	R_CE_plein=$R_Couleur_petales
	V_CE_plein=$V_Couleur_petales
	B_CE_plein=$B_Couleur_petales
	A_CE_plein=$A_Couleur_petales

	-if {$Tours_min>$Tours_max}
		min=$Tours_max
		Tours_max=$Tours_min
		Tours_min=$min
	-endif

	-if {$Increment_angulaire_min>$Increment_angulaire_max}
		min=$Increment_angulaire_max
		Increment_angulaire_max=$Increment_angulaire_min
		Increment_angulaire_min=$min
	-endif

	-if {$Coeff_agrandissement_min>$Coeff_agrandissement_max}
		min=$Coeff_agrandissement_max
		Coeff_agrandissement_max=$Coeff_agrandissement_min
		Coeff_agrandissement_min=$min
	-endif	

	-if {$Longueur_petales_min>$Longueur_petales_max}
		min=$Longueur_petales_max
		Longueur_petales_max=$Longueur_petales_min
		Longueur_petales_min=$min
	-endif	

	-if {$Largeur_petales_min>$Largeur_petales_max}
		min=$Largeur_petales_max
		Largeur_petales_max=$Largeur_petales_min
		Largeur_petales_min=$min
	-endif	

	-if {$Espacement_du_centre_min>$Espacement_du_centre_max}
		min=$Espacement_du_centre_max
		Espacement_du_centre_max=$Espacement_du_centre_min
		Espacement_du_centre_min=$min
	-endif

	-if {$Variation_longueur_min>$Variation_longueur_max}
		min=$Variation_longueur_max
		Variation_longueur_max=$Variation_longueur_min
		Variation_longueur_min=$min
	-endif

	-if {$Variation_epaisseur_min>$Variation_epaisseur_max}
		min=$Variation_epaisseur_max
		Variation_epaisseur_max=$Variation_epaisseur_min
		Variation_epaisseur_min=$min
	-endif

	-if {$Variation_angle_min>$Variation_angle_max}
		min=$Variation_angle_max
		Variation_angle_max=$Variation_angle_min
		Variation_angle_min=$min
	-endif

	-if {$Agrandissement_petales_min>$Agrandissement_petales_max}
		min=$Agrandissement_petales_max
		Agrandissement_petales_max=$Agrandissement_petales_min
		Agrandissement_petales_min=$min
	-endif

	-if {$Rayon_grand_cercle_min>$Rayon_grand_cercle_max}
		min=$Rayon_grand_cercle_max
		Rayon_grand_cercle_max=$Rayon_grand_cercle_min
		Rayon_grand_cercle_min=$min
	-endif	


####### Ligne de commandes		

	-to_rgba

	$Largeur_origine,$Hauteur_origine,1,4

		-repeat $Nombre_Fleurs

			$Largeur_origine,$Hauteur_origine,1,4

			-if {$Couleurs_aleatoires==1}
					R_Couleur_petales={round({(?(255))})}
					V_Couleur_petales={round({(?(255))})}
					B_Couleur_petales={round({(?(255))})}
					#A_Couleur={round({(?(255))})}  # utiliser alpha couleur principale

					R_CI_plein={round({(?(255))})}
					V_CI_plein={round({(?(255))})}
					B_CI_plein={round({(?(255))})}
					A_CI_plein={{round({(?(200))})}+55}

					#R_CI_contour={round({(?(255))})}
					#V_CI_contour={round({(?(255))})}
					#B_CI_contour={round({(?(255))})}
					A_CI_contour={{round({(?(200))})}+55}

					R_CE_plein=$R_Couleur_petales
					V_CE_plein=$V_Couleur_petales
					B_CE_plein=$B_Couleur_petales
					A_CE_plein=$A_Couleur_petales
			-endif				

			# Variables fonction -flower_spiral_pattern_samj					

				# spirale
			tours={$Tours_min+{round(?({$Tours_max-$Tours_min}))}}
			increment_theta={$Increment_angulaire_min+{?({$Increment_angulaire_max-$Increment_angulaire_min})}}
			coeff_dim={$Coeff_agrandissement_min+{?({$Coeff_agrandissement_max-$Coeff_agrandissement_min})}}
			sens_rotation={round({(?($Sens_de_rotation))})}

				# ptales
			Longueur_petales={$Longueur_petales_min+{?({$Longueur_petales_max-$Longueur_petales_min})}}
			Largeur_petales={$Largeur_petales_min+{?({$Largeur_petales_max-$Largeur_petales_min})}}
			Espacement_du_centre={$Espacement_du_centre_min+{round(?({$Espacement_du_centre_max-$Espacement_du_centre_min}))}}
			Variation_longueur={$Variation_longueur_min+{round(?({$Variation_longueur_max-$Variation_longueur_min}))}}
			Variation_epaisseur={$Variation_epaisseur_min+{round(?({$Variation_epaisseur_max-$Variation_epaisseur_min}))}}
			Variation_angle={$Variation_angle_min+{round(?({$Variation_angle_max-$Variation_angle_min}))}}
			Agrandissement_petales={$Agrandissement_petales_min+{?({$Agrandissement_petales_max-$Agrandissement_petales_min})}}

			Remplir_petales=1

			Contour_petales=1
			R_Couleur_contour_petales=$R_CI_contour
			V_Couleur_contour_petales=$V_CI_contour
			B_Couleur_contour_petales=$B_CI_contour
			A_Couleur_contour_petales=$A_CI_contour

			Remplir_cercle_interieur=1

			Contour_cercle_interieur=1

			Remplir_cercle_exterieur=1

			Contour_cercle_exterieur=0
			R_CE_contour=0
			V_CE_contour=0
			B_CE_contour=0
			A_CE_contour=255

			Rayon_grand_cercle={$Rayon_grand_cercle_min+{round(?({$Rayon_grand_cercle_max-$Rayon_grand_cercle_min}))}}

			-flower_spiral_pattern_samj $tours,$increment_theta,$coeff_dim,$sens_rotation,$Longueur_petales,$Largeur_petales,$Espacement_du_centre,$Variation_longueur,$Variation_epaisseur,$Variation_angle,$Agrandissement_petales,$Remplir_petales,$R_Couleur_petales,$V_Couleur_petales,$B_Couleur_petales,$A_Couleur_petales,$Contour_petales,$R_Couleur_contour_petales,$V_Couleur_contour_petales,$B_Couleur_contour_petales,$A_Couleur_contour_petales,$Remplir_cercle_interieur,$R_CI_plein,$V_CI_plein,$B_CI_plein,$A_CI_plein,$Contour_cercle_interieur,$R_CI_contour,$V_CI_contour,$B_CI_contour,$A_CI_contour,$Remplir_cercle_exterieur,$R_CE_plein,$V_CE_plein,$B_CE_plein,$A_CE_plein,$Contour_cercle_exterieur,$R_CE_contour,$V_CE_contour,$B_CE_contour,$A_CE_contour,$Rayon_grand_cercle,$Rayon_petit_cercle,$Variation_de_couleur

			-autocrop[-1]

			Position_X={{round(?({$Largeur_origine+{w}}))}-{w}}
			Position_Y={{round(?({$Hauteur_origine+{h}}))}-{h}}

			#-image[-2] [-1],$Position_X,$Position_Y,0,0,1,[-1]
			#-image[-2] [-1],$Position_X,$Position_Y,0,0,1
			-image[-2] [-1],$Position_X,$Position_Y

			-rm[-1]

			-gimp_compose_1530_alpha[-1,-2] 1,1

		-done

	-blur[-1] $Flou_fleur

	-spread[-1] $Spread_fleur

	-deform[-1] $Deform_fleur

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif

	## vrification ##	
	#-text_outline[0] $Nombre_Fleurs,10,10,64,1,1,255,255,255





						################################################################
						##                                                            ##
						##                  FIN  Remplir de fleurs II                 ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##             Tracer des traits autour d'un point            ##
						##                                                            ##
						################################################################

##	Ides gnrales
##	Des segments partent d'un point. Ils sont dfinis par : les coordonnes du point origine, la longueur, les variations de longueur, le nombre, l'angle de dpart, l'angle de fin, la couleur, les variations de couleur, une symtrie par rapport au point d'origine, % longueur symtrie.
##  Version origine le 24 dcembre 2012 , Joyeux Nol !
## 	Version 1.01 20121224
## 	version 1.02  abandon du "preview" avec : Traits_Strokes_samj(1)  
## 	version 1.03 ajout Epaisseur / Thickness  = int(0,0,32)
## 	version 1.04 ajout loignement

#@gimp Traits_Strokes : Traits_Strokes_samj, Traits_Strokes_samj(1)
#@gimp : sep = separator(), note = note("<small>Origine</small>")
#@gimp : Position X (%) = float(50,0,100)
#@gimp : Position Y (%) = float(50,0,100)
#@gimp : sep = separator(), note = note("<small>Traits / Strokes</small>")
#@gimp : _L_o_n_g_u_e_u_r / Length (Pixels) = int(150,1,4000)
#@gimp : Variations % (Longueur/Length) = float(100,0,1000)
#@gimp : Mode variations = choice(0,"Non / No","Plus / More","Moins / Less","Plus / More [milieu-middle]","Moins / Less [milieu-middle]")
#@gimp : Eloignement du centre (Pixels) = int(0,0,2000)
#@gimp : _N_o_m_b_r_e_ _d_e_ _t_r_a_i_t_s / Number of strokes = int(30,1,2160)
#@gimp : Angle (D\303\251part / Start) = float(0,0,360)
#@gimp : Angle (Fin / End) = float(90,0,360)
#@gimp : Couleur/ Color= color(240,60,120,255)
#@gimp : Variation de couleur / Color variation = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Epaisseur / Thickness  = int(0,0,32)
#@gimp : sep = separator(), note = note("<small>Sym\303\251trie / Symmetry</small>")
#@gimp : Sym\303\251trie / Symmetry = bool(0)
#@gimp : Longueur / Length (%) = float(20,0,100)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")



Traits_Strokes_samj:

####### Dclaration des variables


	Position_X={round({{w}*{$1/100}})}
	Position_Y={round({{h}*{$2/100}})}

		#Traits

	Longueur=$3
	Variations_Longueur=$4
	Mode_variations=$5
	Eloignement_du_centre=$6
	Nombre_de_traits=$7
	Angle_Depart=$8
	Angle_Fin=$9
	R_Couleur=$10
	V_Couleur=$11
	B_Couleur=$12
	A_Couleur=$13
	Variation_de_couleur=$14
	Epaisseur=$15

		#Symtrie

	Symetrie=$16
	Pourcent_Longueur_Sym=$17

		#Divers

	Flou_traits=$18
	Spread_traits=$19
	Deform_traits=$20
	blend=$21
	opacite=$22




####### Ligne de commandes		

	-to_rgba

	{w},{h},1,4		## crer une image transparente aux mmes dimensions que l'image d'origine

	Angle=$Angle_Depart

	-if {$Angle_Depart>$Angle_Fin}
		Angle_Fin={$Angle_Fin+360}
	-endif

	increment_theta={{$Angle_Fin-$Angle_Depart}/$Nombre_de_traits}
	
	-if {$Mode_variations==1}
		Variation={{$Longueur/100*$Variations_Longueur}/$Nombre_de_traits}
	-endif	

	-if {$Mode_variations==2}
		Variation={{-$Longueur/1000*$Variations_Longueur}/$Nombre_de_traits}
	-endif

	-if {$Mode_variations==3}
		Variation={{$Longueur/100*$Variations_Longueur}/{$Nombre_de_traits/2}}
	-endif	

	-if {$Mode_variations==4}
		Variation={{-$Longueur/1000*$Variations_Longueur}/{$Nombre_de_traits/2}}
	-endif

	Longueur_calculee=$Longueur
	Nb_Boucle=1

	R_Couleur_origine=$R_Couleur
	V_Couleur_origine=$V_Couleur
	B_Couleur_origine=$B_Couleur
	A_Couleur_origine=$A_Couleur

	-repeat $Nombre_de_traits

		-if {$Variation_de_couleur==1}
				R_Couleur={round({(?(255))})}
				V_Couleur={round({(?(255))})}
				B_Couleur={round({(?(255))})}
				A_Couleur={{round({(?(200))})}+55}
		-endif

		## couleurs nuances
		-if {$Variation_de_couleur>1}

			Valeur_variation_couleur=16

			-if {$Variation_de_couleur==3}
				Valeur_variation_couleur=32
			-endif

			-if {$Variation_de_couleur==4}
				Valeur_variation_couleur=64
			-endif						

			R_Couleur={round({$R_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$R_Couleur>255}
						R_Couleur=$R_Couleur_origine
				-endif
				-if {$R_Couleur<0}
						R_Couleur=$R_Couleur_origine
				-endif	

			V_Couleur={round({$V_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$V_Couleur>255}
						V_Couleur=$V_Couleur_origine
				-endif
				-if {$V_Couleur<0}
						V_Couleur=$V_Couleur_origine
				-endif

			B_Couleur={round({$B_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$B_Couleur>255}
						B_Couleur=$B_Couleur_origine
				-endif
				-if {$B_Couleur<0}
						B_Couleur=$B_Couleur_origine
				-endif

		-endif

		Debut_X={$Position_X+{round(cos(pi/180*$Angle)*$Eloignement_du_centre)}}
		Debut_Y={$Position_Y+{round(sin(pi/180*$Angle)*$Eloignement_du_centre)}}

		Extremite_X={$Position_X+{round(cos(pi/180*$Angle)*{$Longueur_calculee+$Eloignement_du_centre})}}
		Extremite_Y={$Position_Y+{round(sin(pi/180*$Angle)*{$Longueur_calculee+$Eloignement_du_centre})}}

		-line[-1] $Debut_X,$Debut_Y,$Extremite_X,$Extremite_Y,1,$R_Couleur,$V_Couleur,$B_Couleur,$A_Couleur

		-if {$Symetrie==1}

				Debut_X={$Position_X+{round(cos(pi/180*{$Angle+180})*$Eloignement_du_centre)}}
				Debut_Y={$Position_Y+{round(sin(pi/180*{$Angle+180})*$Eloignement_du_centre)}}

				Extremite_X={$Position_X+{round(cos(pi/180*{$Angle+180})*{{$Longueur_calculee/100*$Pourcent_Longueur_Sym}+$Eloignement_du_centre})}}
				Extremite_Y={$Position_Y+{round(sin(pi/180*{$Angle+180})*{{$Longueur_calculee/100*$Pourcent_Longueur_Sym}+$Eloignement_du_centre})}}

				-line[-1] $Debut_X,$Debut_Y,$Extremite_X,$Extremite_Y,1,$R_Couleur,$V_Couleur,$B_Couleur,$A_Couleur				

		-endif	

		Angle={$Angle+$increment_theta}

			-if {{$Mode_variations==1}||{$Mode_variations==2}}
				Longueur_calculee={$Longueur_calculee+$Variation}
			-endif

			-if {{$Mode_variations==3}||{$Mode_variations==4}}
				-if {$Nb_Boucle<{$Nombre_de_traits/2}}
					Longueur_calculee={$Longueur_calculee+$Variation}
				-else
					Longueur_calculee={$Longueur_calculee-$Variation}
				-endif
			-endif	

		Nb_Boucle={$Nb_Boucle+1}

	-done

	-if {$Epaisseur>0}
		-dilate_circ[-1] $Epaisseur
	-endif

	-blur[-1] $Flou_traits

	-spread[-1] $Spread_traits

	-deform[-1] $Deform_traits

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif




						################################################################
						##                                                            ##
						##         FIN    Tracer des traits autour d'un point         ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                         Spirographe                        ##
						##                                                            ##
						################################################################




## version origine du 25 dcembre 2012, Joyeux Nol !
## version 1.03  abandon du "preview" avec : Spirographe_samj(1)
## version 1.04  ajout -dilate_circ
##	 voir Harmonograph Pintograph
##
#@gimp Spirographe_samj : Spirographe_samj, Spirographe_samj(1)
#@gimp : sep = separator(), note = note("<small>Centre / Center</small>")
#@gimp : Centre / Center X (%) = float(50,0,100)
#@gimp : Centre / Center Y (%) = float(50,0,100)
#@gimp : sep = separator(), note = note("<small>Spirographe</small>")
#@gimp : Rayon/Radius R = int(20,-1000,1000)
#@gimp : Rayon/Radius r = int(30,-1000,1000)
#@gimp : Stylo / Pen (Position)  = int(15,-1000,1000)
#@gimp : Stylo / Pen (Couleur/Color) = color(255,128,64,255)
#@gimp : Stylo / Pen (Variation de couleur/Color variation) = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Stylo / Pen (Dilate Pixels)  = int(0,0,32)
#@gimp : Nombre de tours / Number of turns = int(3,1,20)
#@gimp : Multiplier  = choice(0,"Tours / Turns * 1","Tours / Turns * 10 LENT / SLOW","Tours / Turns * 100 TRES LENT / VERY SLOW")
#@gimp : Increment angulaire / Angular increment (Degr\303\251s) = float(1,1,360)
#@gimp : Diviser / Divide = choice(0,"Increment angulaire-Angular increment / 1","Increment angulaire-Angular increment /10 LENT / SLOW","Increment angulaire-Angular increment /100 TRES LENT / VERY SLOW")
#@gimp : Type de rendu / Rendering type = choice("Formule/Formula 1","Formule/Formula 2","Formule/Formula 3","Formule/Formula 4","Formule/Formula 5","Formule/Formula 6","Formule/Formula 7","Formule/Formula 8")
#@gimp : Points (Rayon/Radius) = int(0,0,32)
#@gimp : Points (Couleur/Color) = color(255,0,0,255)
#@gimp : Lignes (Epaisseur/Thickness) = int(0,0,32)
#@gimp : Lignes (Couleur/Color) = color(255,255,0,255)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")



Spirographe_samj :

	centre_origine_X={$1/100*w}
	centre_origine_Y={$2/100*h}
			## Spirographe
	Rayon_1=$3
	Rayon_2=$4
	Position_Stylo=$5
	R_Couleur_Stylo=$6
	V_Couleur_Stylo=$7
	B_Couleur_Stylo=$8
	A_Couleur_Stylo=$9
	Variation_de_couleur=$10
	Dilate_Stylo=$11
	Nombre_de_tours=$12
	Multiplier_tours=$13
	Increment_angulaire=$14
	Diviser_Increment_angulaire=$15
	Type_de_rendu=$16
	Points_Rayon=$17
	R_Couleur_Points=$18
	V_Couleur_Points=$19
	B_Couleur_Points=$20
	A_Couleur_Points=$21
	Lignes_epaisseur=$22
	R_Couleur_Lignes=$23
	V_Couleur_Lignes=$24
	B_Couleur_Lignes=$25
	A_Couleur_Lignes=$26
	
			## divers
	Flou_Spirographe=$27
	Spread_Spirographe=$28
	Deform_Spirographe=$29
	blend=$30
	opacite=$31


####### Ligne de commandes		

	-to_rgba

	{w},{h},1,4		## crer une image transparente aux mmes dimensions que l'image d'origine

	Nb_Boucle=1
	theta=0
	Ancien_point_X=0
	Nouveau_point_X=0
	Ancien_point_Y=0
	Nouveau_point_Y=0
	
	-if {$Rayon_2==0}
		Rayon_2=1
	-endif

	-if {$Multiplier_tours==1}
		Nombre_de_tours={$Nombre_de_tours*10}
	-endif	

	-if {$Multiplier_tours==2}
		Nombre_de_tours={$Nombre_de_tours*100}
	-endif
	
	-if {$Diviser_Increment_angulaire==1}
		Increment_angulaire={$Increment_angulaire/10}
	-endif	

	-if {$Diviser_Increment_angulaire==2}
		Increment_angulaire={$Increment_angulaire/100}
	-endif
	
	Nombre_de_tours={$Nombre_de_tours/$Increment_angulaire*360}

	R_Couleur_origine=$R_Couleur_Stylo
	V_Couleur_origine=$V_Couleur_Stylo
	B_Couleur_origine=$B_Couleur_Stylo
	A_Couleur_origine=$A_Couleur_Stylo


	-if {$Dilate_Stylo>0}	# 2 tapes "lignes+dilate" puis "traits-points"
	
			-repeat $Nombre_de_tours # tracer la ligne

				-if {$Variation_de_couleur==1}
						R_Couleur_Stylo={round({(?(255))})}
						V_Couleur_Stylo={round({(?(255))})}
						B_Couleur_Stylo={round({(?(255))})}
						##A_Couleur_Stylo={{round({(?(200))})}+55}
				-endif

				## couleurs nuances
				-if {$Variation_de_couleur>1}

					Valeur_variation_couleur=16

					-if {$Variation_de_couleur==3}
						Valeur_variation_couleur=32
					-endif

					-if {$Variation_de_couleur==4}
						Valeur_variation_couleur=64
					-endif						

					R_Couleur_Stylo={round({$R_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
						-if {$R_Couleur_Stylo>255}
								R_Couleur_Stylo=$R_Couleur_origine
						-endif
						-if {$R_Couleur_Stylo<0}
								R_Couleur_Stylo=$R_Couleur_origine
						-endif	

					V_Couleur_Stylo={round({$V_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
						-if {$V_Couleur_Stylo>255}
								V_Couleur_Stylo=$V_Couleur_origine
						-endif
						-if {$V_Couleur_Stylo<0}
								V_Couleur_Stylo=$V_Couleur_origine
						-endif

					B_Couleur_Stylo={round({$B_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
						-if {$B_Couleur_Stylo>255}
								B_Couleur_Stylo=$B_Couleur_origine
						-endif
						-if {$B_Couleur_Stylo<0}
								B_Couleur_Stylo=$B_Couleur_origine
						-endif

				-endif
				
					## Mode
					-if {$Type_de_rendu==0}			
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif

					-if {$Type_de_rendu==1}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif

					-if {$Type_de_rendu==2}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==3}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==4}			
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==5}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==6}			
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==7}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif

					## Tracer
					-if {$Nb_Boucle>1}
						-line[-1] $Ancien_point_X,$Ancien_point_Y,$Nouveau_point_X,$Nouveau_point_Y,1,$R_Couleur_Stylo,$V_Couleur_Stylo,$B_Couleur_Stylo,$A_Couleur_Stylo
					-endif

				Ancien_point_X=$Nouveau_point_X
				Ancien_point_Y=$Nouveau_point_Y

				theta={$theta+$Increment_angulaire}
				Nb_Boucle={$Nb_Boucle+1}

			-done	
	
	
		-dilate_circ[-1] $Dilate_Stylo
		
		Nb_Boucle=1
		theta=0
		Ancien_point_X=0
		Nouveau_point_X=0
		Ancien_point_Y=0
		Nouveau_point_Y=0
		
		-if {{$Lignes_epaisseur>0}||{$Points_Rayon>0}}

			-repeat $Nombre_de_tours # tracer les points et traits

					## Mode
					-if {$Type_de_rendu==0}			
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif

					-if {$Type_de_rendu==1}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif

					-if {$Type_de_rendu==2}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==3}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==4}			
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==5}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==6}			
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==7}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif

					## Tracer
					-if {$Nb_Boucle>1}

						-if {$Lignes_epaisseur>0}
							-if {$Points_Rayon>0}
								-circle[-1] $Ancien_point_X,$Ancien_point_Y,$Points_Rayon,1,$R_Couleur_Points,$V_Couleur_Points,$B_Couleur_Points,$A_Couleur_Points
							-endif					
							-trait_epais_samj $Ancien_point_X,$Ancien_point_Y,$Nouveau_point_X,$Nouveau_point_Y,$Lignes_epaisseur,1,$R_Couleur_Lignes,$V_Couleur_Lignes,$B_Couleur_Lignes,$A_Couleur_Lignes
							-if {$Points_Rayon>0}
								-circle[-1] $Nouveau_point_X,$Nouveau_point_Y,$Points_Rayon,1,$R_Couleur_Points,$V_Couleur_Points,$B_Couleur_Points,$A_Couleur_Points
							-endif					
						-endif

						-if {$Points_Rayon>0}
							-if {$Variation_de_couleur==1}
									R_Couleur_Points={round({(?(255))})}
									V_Couleur_Points={round({(?(255))})}
									B_Couleur_Points={round({(?(255))})}
									##A_Couleur_Points={{round({(?(200))})}+55}
							-endif
							-circle[-1] $Ancien_point_X,$Ancien_point_Y,$Points_Rayon,1,$R_Couleur_Points,$V_Couleur_Points,$B_Couleur_Points,$A_Couleur_Points
						-endif
						
					-endif

				Ancien_point_X=$Nouveau_point_X
				Ancien_point_Y=$Nouveau_point_Y

				theta={$theta+$Increment_angulaire}
				Nb_Boucle={$Nb_Boucle+1}

			-done	

		-endif	

	-else

			-repeat $Nombre_de_tours

				-if {$Variation_de_couleur==1}
						R_Couleur_Stylo={round({(?(255))})}
						V_Couleur_Stylo={round({(?(255))})}
						B_Couleur_Stylo={round({(?(255))})}
						##A_Couleur_Stylo={{round({(?(200))})}+55}
				-endif

				## couleurs nuances
				-if {$Variation_de_couleur>1}

					Valeur_variation_couleur=16

					-if {$Variation_de_couleur==3}
						Valeur_variation_couleur=32
					-endif

					-if {$Variation_de_couleur==4}
						Valeur_variation_couleur=64
					-endif						

					R_Couleur_Stylo={round({$R_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
						-if {$R_Couleur_Stylo>255}
								R_Couleur_Stylo=$R_Couleur_origine
						-endif
						-if {$R_Couleur_Stylo<0}
								R_Couleur_Stylo=$R_Couleur_origine
						-endif	

					V_Couleur_Stylo={round({$V_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
						-if {$V_Couleur_Stylo>255}
								V_Couleur_Stylo=$V_Couleur_origine
						-endif
						-if {$V_Couleur_Stylo<0}
								V_Couleur_Stylo=$V_Couleur_origine
						-endif

					B_Couleur_Stylo={round({$B_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
						-if {$B_Couleur_Stylo>255}
								B_Couleur_Stylo=$B_Couleur_origine
						-endif
						-if {$B_Couleur_Stylo<0}
								B_Couleur_Stylo=$B_Couleur_origine
						-endif

				-endif
				
					## Mode
					-if {$Type_de_rendu==0}			
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif

					-if {$Type_de_rendu==1}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif

					-if {$Type_de_rendu==2}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==3}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1+$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1+$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==4}			
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==5}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1-$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==6}			
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{{$Rayon_2+$Position_Stylo}*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif
					
					-if {$Type_de_rendu==7}				
						Nouveau_point_X={$centre_origine_X+{{{$Rayon_1-$Rayon_2}*{cos(pi/180*$theta)}}-{$Position_Stylo*{cos({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}
						Nouveau_point_Y={$centre_origine_Y+{{{$Rayon_1-$Rayon_2}*{sin(pi/180*$theta)}}-{$Position_Stylo*{sin({{$Rayon_1+$Rayon_2}/$Rayon_2}*{pi/180*$theta})}}}}				
					-endif

					## Tracer
					-if {$Nb_Boucle>1}

						-if {$Lignes_epaisseur>0}
							-if {$Points_Rayon>0}
								-circle[-1] $Ancien_point_X,$Ancien_point_Y,$Points_Rayon,1,$R_Couleur_Points,$V_Couleur_Points,$B_Couleur_Points,$A_Couleur_Points
							-endif					
							-trait_epais_samj $Ancien_point_X,$Ancien_point_Y,$Nouveau_point_X,$Nouveau_point_Y,$Lignes_epaisseur,1,$R_Couleur_Lignes,$V_Couleur_Lignes,$B_Couleur_Lignes,$A_Couleur_Lignes
							-if {$Points_Rayon>0}
								-circle[-1] $Nouveau_point_X,$Nouveau_point_Y,$Points_Rayon,1,$R_Couleur_Points,$V_Couleur_Points,$B_Couleur_Points,$A_Couleur_Points
							-endif					
						-endif

						-if {$Lignes_epaisseur<1}
							-line[-1] $Ancien_point_X,$Ancien_point_Y,$Nouveau_point_X,$Nouveau_point_Y,1,$R_Couleur_Stylo,$V_Couleur_Stylo,$B_Couleur_Stylo,$A_Couleur_Stylo
						-endif

						-if {$Points_Rayon>0}
							-if {$Variation_de_couleur==1}
									R_Couleur_Points={round({(?(255))})}
									V_Couleur_Points={round({(?(255))})}
									B_Couleur_Points={round({(?(255))})}
									##A_Couleur_Points={{round({(?(200))})}+55}
							-endif
							-circle[-1] $Ancien_point_X,$Ancien_point_Y,$Points_Rayon,1,$R_Couleur_Points,$V_Couleur_Points,$B_Couleur_Points,$A_Couleur_Points
						-endif
						
					-endif

				Ancien_point_X=$Nouveau_point_X
				Ancien_point_Y=$Nouveau_point_Y

				theta={$theta+$Increment_angulaire}
				Nb_Boucle={$Nb_Boucle+1}

			-done	

	-endif

	-blur[-1] $Flou_Spirographe

	-spread[-1] $Spread_Spirographe

	-deform[-1] $Deform_Spirographe

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif





						################################################################
						##                                                            ##
						##                     FIN  Spirographe                       ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##               Fonction trait_epais_samj                    ##
						##                                                            ##
						################################################################


## 		Latest update : 2012/12/26
##		Pour tracer un trait avec une certaine paisseur avec 2 modes pour terminer les extrmits
##		appel par :
##					-trait_epais_samj Origine_X,Origine_Y,Terminaison_X,Terminaison_Y,Epaisseur,Mode_extremite,R_trait,V_trait,B_trait,A_trait
##					gmic 800,800,1,4 -m samj.gmic -trait_epais_samj 750,50,50,750,40,1,255,128,64,255

trait_epais_samj :

#	-verbose -

	## Variables
#	Origine_X=$1
#	Origine_Y=$2
#	Terminaison_X=$3
#	Terminaison_Y=$4
#	Demi_epaisseur={$5/2}
#	Mode_extremite=$6		# 1 tracer un cercle pour crer des extrmites arrondies
#	R_trait=$7
#	V_trait=$8
#	B_trait=$9
#	A_trait=$10

#	-if {{$Terminaison_X-$Origine_X}==0}

#		X1={$Origine_X-$Demi_epaisseur}
#		Y1=$Origine_Y

#		X2={$Terminaison_X-$Demi_epaisseur}
#		Y2=$Terminaison_Y

#		X3={$Terminaison_X+$Demi_epaisseur}
#		Y3=$Terminaison_Y

#		X4={$Origine_X+$Demi_epaisseur}
#		Y4=$Origine_Y

#	-else
#		-if {{$Terminaison_Y-$Origine_Y}==0}

#			X1=$Origine_X
#			Y1={$Origine_Y+$Demi_epaisseur}

#			X2=$Terminaison_X
#			Y2={$Terminaison_Y+$Demi_epaisseur}

#			X3=$Terminaison_X
#			Y3={$Terminaison_Y-$Demi_epaisseur}

#			X4=$Origine_X
#			Y4={$Origine_Y-$Demi_epaisseur}

#		-else

			# triangle de base
#			angle_triangle={{{pi}/2}-{atan({{$Terminaison_Y-$Origine_Y}/{$Terminaison_X-$Origine_X}})}}
#			X_triangle={$Demi_epaisseur*{cos($angle_triangle)}}
#			Y_triangle={$Demi_epaisseur*{sin($angle_triangle)}}

			# dterminer 4 points pour tracer un rectangle	
#			X1={$Origine_X-$X_triangle}
#			Y1={$Origine_Y+$Y_triangle}

#			X2={$Terminaison_X-$X_triangle}
#			Y2={$Terminaison_Y+$Y_triangle}

#			X3={$Terminaison_X+$X_triangle}
#			Y3={$Terminaison_Y-$Y_triangle}

#			X4={$Origine_X+$X_triangle}
#			Y4={$Origine_Y-$Y_triangle}

#		-endif
#	-endif	

#	-polygon[-1] 4,$X1,$Y1,$X2,$Y2,$X3,$Y3,$X4,$Y4,1,$R_trait,$V_trait,$B_trait,$A_trait

#	-if {$Mode_extremite==1}
#		-circle[-1] $Origine_X,$Origine_Y,$Demi_epaisseur,1,$R_trait,$V_trait,$B_trait,$A_trait
#		-circle[-1] $Terminaison_X,$Terminaison_Y,$Demi_epaisseur,1,$R_trait,$V_trait,$B_trait,$A_trait
#	-endif

#	# -line[-1] $Origine_X,$Origine_Y,$Terminaison_X,$Terminaison_Y,1,255,255,255,255  # vrification

#	-verbose +	


## version variables $1,$2,$3,etc.	
## Pour tracer une ligne avec une certaine paisseur et 2 modes pour terminer les extrmits
##
## -stroke Origine_X,Origine_Y,Terminaison_X,Terminaison_Y,Epaisseur,Mode_extremite(1 pour extremite arrondie),Rouge,Vert,Bleu,Alpha
## gmic 800,800,1,4 -stroke 750,50,50,750,40,1,255,128,64,255

# stroke :
		-verbose -
		-if {{$3-$1}==0} X1={$1-{$5/2}} Y1=$2 X2={$3-{$5/2}} Y2=$4 X3={$3+{$5/2}} Y3=$4 X4={$1+{$5/2}} Y4=$2
		-else
		   -if {{$4-$2}==0} X1=$1 Y1={$2+{$5/2}} X2=$3 Y2={$4+{$5/2}} X3=$3 Y3={$4-{$5/2}} X4=$1 Y4={$2-{$5/2}}
		   -else angle_triangle={{{pi}/2}-{atan({{$4-$2}/{$3-$1}})}} X_triangle={{$5/2}*{cos($angle_triangle)}} Y_triangle={{$5/2}*{sin($angle_triangle)}} 
			 X1={$1-$X_triangle} Y1={$2+$Y_triangle} X2={$3-$X_triangle} Y2={$4+$Y_triangle} X3={$3+$X_triangle} Y3={$4-$Y_triangle} X4={$1+$X_triangle} Y4={$2-$Y_triangle}
		   -endif
		-endif	
		-polygon[-1] 4,$X1,$Y1,$X2,$Y2,$X3,$Y3,$X4,$Y4,1,$7,$8,$9,$10
		-if {$6==1} -circle[-1] $1,$2,{$5/2},1,$7,$8,$9,$10 -circle[-1] $3,$4,{$5/2},1,$7,$8,$9,$10 -endif
		-verbose +	



						################################################################
						##                                                            ##
						##             FIN  Fonction trait_epais_samj                 ##
						##                                                            ##
						################################################################





						################################################################
						##                                                            ##
						##                       Carrelage_samj                       ##
						##                                                            ##
						################################################################


#********** Carrelage_samj **********
##
##	Version 1.00 samj 27dcembre 2012
##	Version 1.01 + dformation
##
##
#@gimp Carrelage_samj : Carrelage_samj, Carrelage_samj_preview
#@gimp : sep = separator(), note = note("<small>Carrelage / Tiles</small>")
#@gimp : Dimension (Pixels) = int(8,6,32)
#@gimp : Rapport (%) = int(100,25,400)
#@gimp : sep = separator(), note = note("<small>Couleurs / Colors</small>")
#@gimp : R Selection = int(255,0,255)
#@gimp : V/G Selection = int(255,0,255)
#@gimp : B Selection = int(255,0,255)
#@gimp : sep = separator(), note = note("<small>Sharpen [octave sharpening]</small>")
#@gimp : Scales = int(4,3,5)
#@gimp : Maximal radius = float(5,2,8)
#@gimp : Amount = float(3,2,10)
#@gimp : It\303\251rations = int(3,1,5)
#@gimp : sep = separator(), note = note("<small>Rendu / Rendering</small>")
#@gimp : Rendu / Rendering = int(1,1,5)
#@gimp : Luminosit\303\251 = int(0,0,4000)
#@gimp : Deformation = float(0,0,5)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Carrelage_samj :

####### Dclaration des variables

	Dimension=$1
	Rapport=$2
	R_selection=$3
	V_selection=$4
	B_selection=$5

	SO_Scales=$6
	SO_Maximal_radius=$7
	SO_Amount=$8

	SO_Iterations=$9
	Rendu=$10
	Luminosite=$11
	Deformation=$12


	SO_Threshold=0
	SO_Channel=0

####### Ligne de commandes

  -repeat @# -l[$>]
  
		-if {$Dimension==0}
			Dimension=1
		-endif


		k_w=$Dimension
		k_h={round({$Dimension*$Rapport/100})}

		-resize[-1] {{w}/$k_w},{{h}/$k_h}

		-resize[-1] {{w}*$k_w},{{h}*$k_h}

		--gimp_do_nothing[-1]

		-Grizou_samj[-1] 0,0,$R_selection,255,0,$V_selection,255,0,$B_selection,255,0,765,255,0
		
		-repeat $SO_Iterations
			-gimp_unsharp_octave[-1] $SO_Scales,$SO_Maximal_radius,$SO_Amount,$SO_Threshold,$SO_Channel
		-done

		-if {$Luminosite>1} -sharpen[-1,-2] $Luminosite -endif
		
		-if {$Deformation>0} -deform[-1] $Deformation -endif

		-if {$Rendu==1} -gimp_compose_1530_softlight[-1,-2] 1,0 -endif
		-if {$Rendu==2} -gimp_compose_1530_multiply[-1,-2] 1,0 -endif
		-if {$Rendu==3} -gimp_compose_1530_overlay[-1,-2] 1,0 -endif
		-if {$Rendu==4} -gimp_compose_1530_reflect[-1,-2] 1,0 -endif
		-if {$Rendu==5} -gimp_compose_1530_screen[-1,-2] 1,0 -endif

  -endl -done

Carrelage_samj_preview :
	-gimp_split_preview "-Carrelage_samj ${1--2}",$-1



						################################################################
						##                                                            ##
						##                    FIN  Carrelage_samj                     ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##             Fonction ball_modification_samj                ##
						##                                                            ##
						################################################################

#	Cette fonction est une modification de la fonction "gmic ball" du fichier "gmic_def.gmic" - By David Tschumperle License CeCILL v2.0
#	Le rsultat est un boule ronde avec clat dont le diamtre est la plus petite dimension de l'image d'origine.
#	gmic -m samj.gmic 32,32 64,64 200,200 256,256 -ball_modification_samj 255,164,100,0.7,0.3,0.08,0.08,255,255,255 -n 0,255  # semblable  -ball
#	gmic -m samj.gmic 150,300,1,4 -ball_modification_samj 255,164,100,0.25,0.7,0.1,0.08,255,214,150 -n 0,255


#@gmic ball_modification_samj : _R,_G,_B,X_light,Y_light,X_radius,Y_radius,R_light,G_light,B_light
#@gmic : Draw a colored RGBA ball sprite on selected images.
#@gmic : Default values: 'R=255', 'G=R' and 'B=R'.
#@gmic : $ 32,32 64,64 200,200 256,256 -ball_modification_samj 255,164,100,0.7,0.3,0.08,0.08,255,255,255
ball_modification_samj : -skip ${1=255},${2=$1},${3=$2},${4=0.7},${5=0.3},${6=0.08},${7=0.08},${8=255},${9=$8},${10=$8}
	-e[^-1] "Draw ball sprite on image$?, with color ($1,$2,$3) light XY ($4,$5) radius ($6,$7)color ($8,$9,$10) ."
	-v - -to_rgba
	-repeat @# -l[$>]

		mwh={min(w,h)}
		-sh 3,3 -f[-1] 0 -rm[-1]
		-ellipse {0.5*$mwh},{0.5*$mwh},{0.5*$mwh-4},{0.5*$mwh-4},1,1,$1,$2,$3,255
		-sh 0,2 -*[-1] '($mwh+y-x)/(2*w)' -rm[-1]
		-ellipse {$mwh*$4},{$mwh*$5},{$mwh*$6},{$mwh*$7},1,{min($mwh/64,1)},$8,$9,$10,255
		-sh 0,2 -b[-1] {0.02*$mwh} -rm[-1]
		-sh 3,3 -*[-2] [-1] -dilate[-1] 3 -rm[-1]
		-sh 0,2 -+[-1] 'if(i&&(!i(x-1)||!i(x+1)||!i(x,y-1)||!i(x,y+1)),if(c==0,$1,if(c==1,$2,$3))/6,0)' -rm[-1]
		
	-endl -done -v +

						################################################################
						##                                                            ##
						##           FIN  Fonction ball_modification_samj             ##
						##                                                            ##
						################################################################


						################################################################
						##                                                            ##
						##         TEST de la fonction  "ball_modification_samj"      ##
						##                                                            ##
						################################################################

#@gimp Test fonction balle : test_balle_samj, test_balle_samj(1)
#@gimp : note = note("TEST de la fonction -ball_modification_samj")
#@gimp : sep = separator(), note = note("<small>Position</small>")
#@gimp : Position X (%) = float(50,0,100)
#@gimp : Position Y (%) = float(50,0,100)
#@gimp : sep = separator(), note = note("<small>Balle</small>")
#@gimp : Dimension balle = int(300,10,2000)
#@gimp : Balle = color(255,128,64)
#@gimp : X light = float(0.30,0.20,0.80)
#@gimp : Y light = float(0.70,0.20,0.80)
#@gimp : X radius = float(0.12,0.01,0.20)
#@gimp : Y radius = float(0.12,0.01,0.20)
#@gimp : Light = color(255,234,224)
#@gimp : sep = separator(), note = note("<small>Normalisation</small>")
#@gimp : N min. = int(0,0,255)
#@gimp : N max. = int(255,0,255)
#@gimp : sep = separator(), note = note("<small>Rotation</small>")
#@gimp : Angle rotation = float(0.00,0.00,360.00)
#@gimp : Boundary rotation = int(0,0,2)
#@gimp : sep = separator(), note = note("<small>Fond</small>")
#@gimp : Remplir Couleur = bool(0)
#@gimp : Fond = color(255,255,255)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(1,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(0,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")


						
test_balle_samj:


	## variables

	X_position={round({{{w}*{$1/100}}-{$3/2}})}
	Y_position={round({{{h}*{$2/100}}-{$3/2}})}
	
	Dimension_balle=$3	# mini correct 16
	R_Balle=$4
	V_Balle=$5
	B_Balle=$6
	X_light=$7
	Y_light=$8
	X_radius=$9
	Y_radius=$10
	R_light=$11
	G_light=$12
	B_light=$13

	N_min=$14
	N_max=$15
	Angle_rotation=$16
	Boundary_rotation=$17
	Remplir_Fond=$18
	R_Couleur_Fond=$19
	V_Couleur_Fond=$20
	B_Couleur_Fond=$21
	
	# Variables divers	

	Flou_balle=$22
	Spread_balle=$23	
	Deform_balle=$24	

	blend=$25
	opacite=$26

####### Ligne de commandes	


-to_rgba

  -repeat @# -l[$>]

	{w},{h},1,4
	
	--gimp_do_nothing[-1]

	$Dimension_balle,$Dimension_balle,1,4
	
	-if {$Remplir_Fond>0}
		-fill_color[-1] $R_Couleur_Fond,$V_Couleur_Fond,$B_Couleur_Fond,255
	-endif

	-ball_modification_samj[-1] $R_Balle,$V_Balle,$B_Balle,$X_light,$Y_light,$X_radius,$Y_radius,$R_light,$G_light,$B_light

	-n[-1] $N_min,$N_max

	-if {$Angle_rotation>0}
		-rotate[-1] $Angle_rotation,$Boundary_rotation,2,{{w}/2},{{h}/2}
	-endif

	-image[-2] [-1],$X_position,$Y_position

	-rm[-1]

	-gimp_compose_1530_alpha[-1,-2] 1,0

	-blur[-1] $Flou_balle

	-spread[-1] $Spread_balle

	-deform[-1] $Deform_balle

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif


  -endl -done





						################################################################
						##                                                            ##
						##      FIN  TEST de la fonction  "ball_modification_samj"    ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##           ( Mosaique 1 )  mosaique_1_balles_samj           ##
						##                                                            ##
						################################################################

## limiter le travail ordi. par maximum image = 4800 sur la plus grande dimension (80*60)
## la "rsolution" limite Dimension_balle.
## version 1.02 ajout rapidit (- 1 resize) et calibration cercle
## version 1.03 mode couleur

#@gimp Mosaique 1 : mosaique_1_balles_samj, mosaique_1_balles_samj(1)
#@gimp : sep = separator(), note = note("<small>Resolution</small>")
#@gimp : Resolution = int(120,80,400)
#@gimp : sep = separator(), sep = separator(), note = note("<small>Cercles / Circles</small>")
#@gimp : Dimension = int(30,12,60)
#@gimp : Couleur / Color = color(210,210,210)
#@gimp : X light = float(0.30,0.20,0.80)
#@gimp : Y light = float(0.67,0.20,0.80)
#@gimp : X radius = float(0.10,0.01,0.20)
#@gimp : Y radius = float(0.08,0.01,0.20)
#@gimp : Light color = color(180,180,180)
#@gimp : Flou / Blur = float(1,0,10)
#@gimp : Angle rotation = float(180.00,0.00,360.00)
#@gimp : Contour = int(5,0,20)
#@gimp : D\303\251calage X Contour = int(-1,-5,5)
#@gimp : D\303\251calage Y Contour = int(0,-5,5)
#@gimp : *** Pr\303\251visualisation Ajuster R\303\251glages / Preview Adjust Settings= bool(0)
#@gimp : sep = separator(), sep = separator(), note = note("<small>Fond / Background</small>")
#@gimp : Color = color(0,0,0)
#@gimp : Normalize L = int(128,0,255)
#@gimp : Cut L = int(128,0,255)
#@gimp : sep = separator(), note = note("<small>R\303\251sultat final</small>")
#@gimp : Nettet\303\251 / Sharpen = int(0,0,400)
#@gimp : Normalize L = int(128,0,255)
#@gimp : Cut L = int(128,0,255)
#@gimp : It\303\251rations Accentuation= int(1,0,5)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Rendu / Rendering = choice(2,"2 Calques / 2 Layers","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor","Couleur / Color Mode")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")



mosaique_1_balles_samj:

	## variables
	Resolution=$1 # (de 80  400)

		# balles
	Dimension_balle=$2  # de 12  60
	R_Balle=$3
	V_Balle=$4
	B_Balle=$5
	X_light=$6
	Y_light=$7
	X_radius=$8
	Y_radius=$9
	R_light=$10
	G_light=$11
	B_light=$12
	Flou_balle=$13
	Angle_rotation=$14
	Contour_balle=$15 # de 0  20 max= 30% de Dimension_balle
	Decalage_X_Contour=$16
	Decalage_Y_Contour=$17
	Ajuster_reglages=$18

		# fond
	R_fond=$19
	V_fond=$20
	B_fond=$21
	normalize_L_balles=$22  # de 0 255 position mdiane=128
	cut_L_balles=$23  # de 0 255 position mdiane=128

		# final
	nettete=$24 
	normalize_L_final=$25   # de 0 255 position mdiane=128
	cut_L_final=$26   # de 0 255 position mdiane=128
	Iterations_Accentuation=$27

	Rendu=$28
	opacite=$29

	# Variables calcules

	-if {$Contour_balle>{$Dimension_balle*0.3}}
		Contour_balle={round({$Dimension_balle*0.3})}
	-endif

	-if {{$Resolution*$Dimension_balle}>4800}
		Dimension_balle={round({4800/$Resolution})}
	-endif
	Dimension_resultat={$Resolution*$Dimension_balle}

####### Ligne de commandes	

	-to_rgba
	
	-if {$Rendu==31} # mode couleur
		K_im_IM=16
		--gimp_do_nothing[-1]
		-gimp_decompose_channels[-1] 2,0,1,0 IMAX={round({{iM}-$K_im_IM})} IMIN={round({{im}+$K_im_IM})} -rm[-1,-2,-3]
		-if {$IMAX>255} IMAX=255 -endif -if {$IMIN<0} IMIN=0 -endif
	-endif
			
	-if {$Ajuster_reglages==0} # pas de calibration cercle

		-if {{w}>{h}}	
			-resize[-1] {$Dimension_resultat/$Dimension_balle},{{{h}*$Dimension_resultat/{w}}/$Dimension_balle},1,3
		-else
			-resize[-1] {{{w}*$Dimension_resultat/{h}}/$Dimension_balle},{$Dimension_resultat/$Dimension_balle},1,3
		-endif

		-if {im<0} -c[-1] 0,255 -elif {iM>255} -c[-1] 0,255 -endif

		-resize[-1] {{w}*$Dimension_balle},{{h}*$Dimension_balle}

		{$Dimension_balle+$Contour_balle},{$Dimension_balle+$Contour_balle},1,4

		-ball_modification_samj[-1] $R_Balle,$V_Balle,$B_Balle,$X_light,$Y_light,$X_radius,$Y_radius,$R_light,$G_light,$B_light

		-if {$Contour_balle>0}
			-crop[-1] {$Contour_balle+$Decalage_X_Contour},{$Contour_balle+$Decalage_Y_Contour},{{w}-{$Contour_balle+$Decalage_X_Contour}},{{h}-{$Contour_balle+$Decalage_Y_Contour}}
		-endif

		-n[-1] 0,255

		-if {$Angle_rotation>0}
			-rotate[-1] $Angle_rotation,0,2,{{w}/2},{{h}/2}
		-endif

		-autocrop[-1]

		-resize[-1] $Dimension_balle,$Dimension_balle,1,3

		-n[-1] 0,255

		-resize[-1] [-2],[-2],1,1,0,2

		-to_rgba[-1]
		
		-if {$Rendu>0} # 1 calque rsultant

			-if {{$R_fond+$V_fond+$B_fond}>0}
				-replace_color[-1] 40,3,0,0,0,255,$R_fond,$V_fond,$B_fond,255
			-endif

			-if {$normalize_L_balles!=128}
				-gimp_apply_curve[-1] 0,128,$normalize_L_balles,-1,128,-1,128,-1,128,-1,128,255,1,3,1,0,0
			-endif

			-if {$cut_L_balles!=128}
				-gimp_apply_curve[-1] 0,128,$cut_L_balles,-1,128,-1,128,-1,128,-1,128,255,1,3,0,0,0
			-endif

			-blur[-1] $Flou_balle

			-if {$Rendu==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
			-if {$Rendu==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
			-if {$Rendu==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
			-if {$Rendu==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
			-if {$Rendu==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
			-if {$Rendu==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
			-if {$Rendu==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
			-if {$Rendu==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
			-if {$Rendu==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
			-if {$Rendu==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
			-if {$Rendu==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
			-if {$Rendu==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
			-if {$Rendu==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
			-if {$Rendu==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
			-if {$Rendu==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
			-if {$Rendu==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
			-if {$Rendu==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
			-if {$Rendu==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
			-if {$Rendu==19} -compose_1530_median[-1,-2] -endif
			-if {$Rendu==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
			-if {$Rendu==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
			-if {$Rendu==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
			-if {$Rendu==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
			-if {$Rendu==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
			-if {$Rendu==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
			-if {$Rendu==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
			-if {$Rendu==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
			-if {$Rendu==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
			-if {$Rendu==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
			-if {$Rendu==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif

			-if {$Rendu==31} # mode couleur
				-c[-1,-2] $IMIN,$IMAX -gimp_decompose_channels 2,0,1,0 -remove[-2,-3,-4] -gimp_decompose_channels 2,1,1,0 ## mode couleur , dcomposition RGB -> HSL , conserver les 3 bons canaux , recomposition HSL -> RGB
			-endif

			-if {$nettete>0}
				-sharpen[-1] $nettete
			-endif

			-repeat $Iterations_Accentuation
				--gimp_do_nothing[-1]
				-gimp_compose_1530_overlay[-1,-2] 1,0
			-done

			-if {$normalize_L_final!=128}
				-gimp_apply_curve[-1] 0,128,$normalize_L_final,-1,128,-1,128,-1,128,-1,128,255,1,3,1,0,0
			-endif

			-if {$cut_L_final!=128}
				-gimp_apply_curve[-1] 0,128,$cut_L_final,-1,128,-1,128,-1,128,-1,128,255,1,3,0,0,0
			-endif

		-endif

	-else #Calibration cercle

		-resize[-1] {{$Dimension_balle+$Contour_balle}*1.5},{{$Dimension_balle+$Contour_balle}*1.5},1,3
		
		-fill_color[-1] 255,128,64,255
		
		{$Dimension_balle+$Contour_balle},{$Dimension_balle+$Contour_balle},1,4

		-ball_modification_samj[-1] $R_Balle,$V_Balle,$B_Balle,$X_light,$Y_light,$X_radius,$Y_radius,$R_light,$G_light,$B_light

		-if {$Contour_balle>0}
			-crop[-1] {$Contour_balle+$Decalage_X_Contour},{$Contour_balle+$Decalage_Y_Contour},{{w}-{$Contour_balle+$Decalage_X_Contour}},{{h}-{$Contour_balle+$Decalage_Y_Contour}}
		-endif

		-n[-1] 0,255

		-if {$Angle_rotation>0}
			-rotate[-1] $Angle_rotation,0,2,{{w}/2},{{h}/2}
		-endif

		-autocrop[-1]

		-resize[-1] $Dimension_balle,$Dimension_balle,1,3

		-n[-1] 0,255

		-gimp_compose_1530_softlight[-1,-2] 1,1

	-endif

						################################################################
						##                                                            ##
						##        FIN  ( Mosaique 1 )  mosaique_1_balles_samj         ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##                      Tests_Warp_samj                       ##
						##                                                            ##
						################################################################


#********** Tests_Warp_samj **********
##
##	 Version 1.00 samj 31 dcembre 2012
##
#@gimp Test Warp : Tests_Warp_samj, Tests_Warp_samj_preview
#@gimp : note = note("Tests de la fonction Warp")
#@gimp : sep = separator()
#@gimp : Tests = choice(0,"Test 1","Test 2","Test 3","Test 4","Test 5","Test 6","Test 7","Test 8","Test 9","Test 10","Test 11","Test 12","Test 13")
#@gimp : 1 Calque / 1 Layer = bool(1)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/01</i>.</small>")

Tests_Warp_samj :

####### Dclaration des variables

Test=$1
Un_Calque=$2


####### Ligne de commandes

-to_rgba[-1]

  -repeat @# -l[$>]

	-if {$Test==0} # Test 1 Fond motifs gomtriques N&B
		{w},{h},1,4 -fill_color[-1] 0,0,0,255 -polygon[-1] 3,{w},0,{w},{h},0,{h},1,255,255,255,255 -warp[0] [1],1,1,1  -warp[0] [1],1,1,1
	-endif		
	-if {$Test==1} # Test 2 Fond motifs gomtriques N&B
		{w},{h},1,4 -fill_color[-1] 0,0,0,255 -polygon[-1] 4,{{w}/2},0,{w},0,{w},{h},{{w}/2},{h},1,255,255,255,255 -warp[0] [1],1,1,1  -warp[0] [1],1,1,1
	-endif
	-if {$Test==2} # Test 3 Fond motifs gomtriques N&B
		{w},{h},1,4 -fill_color[-1] 0,0,0,255 -polygon[-1] 4,{{w}/2},0,{w},0,{w},{h},{{w}/2},{{h}/2},1,255,255,255,255 -warp[0] [1],1,1,1  -warp[0] [1],1,1,1
	-endif
	-if {$Test==3} # Test 4 Fond motifs gomtriques N&B
		{w},{h},1,4 -fill_color[-1] 0,0,0,255 -ellipse[-1] {w},{{h}/2},{{w}/2},{{h}/2},0,1,255,255,255,255 -warp[0] [1],1,1,1  -warp[0] [1],1,1,1
	-endif
	-if {$Test==4} # Test 5 Fond motifs gomtriques + Bruit color
		{w},{h},1,4 -fill_color[-1] 255,255,255,255 -gimp_noise[-1] 200,0,0,0,0 -polygon[-1] 3,0,0,{w},0,0,{h},1,0,0,0,255 -warp[0] [1],1,1,1  #  -polygon[-1] 5,0,0,{w},0,{{w}/2},{{h}/2},{w},{h},0,{h},1,0,0,0,255
	-endif	
	-if {$Test==5} # Test 6 Fond motifs gomtriques + Bruit Niveaux de gris
		{w},{h},1,4 -fill_color[-1] 255,255,255,255 -gimp_noise[-1] 200,0,0,0,0 -to_gray[-1] -n[-1] 0,255 -to_rgba[-1] -polygon[-1] 3,0,0,{w},0,0,{h},1,0,0,0,255 -warp[0] [1],1,1,1  #  -polygon[-1] 5,0,0,{w},0,{{w}/2},{{h}/2},{w},{h},0,{h},1,0,0,0,255
	-endif		
	-if {$Test==6} # Test 7 Fond motifs gomtriques niveaux de gris
		{w},{h},1,4 -fill_color[-1] 0,0,0,255 -Masques_geometriques_samj[-1] 16,8,1,1,60,60,60,255,60,60,60,255,0,0,0,0,2,0,0,0.7,0.3,0.6,1.1,15,8,0,0,0  -warp[0] [1],1,1,1
	-endif	
	-if {$Test==7} # Test 8 Bruit color
		{w},{h},1,4 -fill_color[-1] 255,255,255,255 -gimp_noise[-1] 200,0,0,0,0 -warp[0] [1],1,1,1
	-endif
	-if {$Test==8} # Test 9 Bruit Niveaux de gris
		{w},{h},1,4 -fill_color[-1] 255,255,255,255 -gimp_noise[-1] 200,0,0,0,0 -to_gray[-1] -n[-1] 0,255 -to_rgba[-1] -warp[0] [1],1,1,1
	-endif	
	-if {$Test==9} # Test 10 Bruit Niveaux de gris
		Exp={{{w}+{h}}/8}
		{w},{h},1,4 -gimp_noise[-1] 200,0,0,0,0 -to_gray[-1] -n[-1] 0,255 -to_rgba[-1] -expand_xy[-1,-2] $Exp -warp[0] [1],1,1,1
	-endif
	-if {$Test==10} # Test 11 Bruit Niveaux de gris
		W_origine={w}
		H_origine={h}
		Exp={{{w}+{h}}/8}
		{w},{h},1,4 -gimp_noise[-1] 200,0,0,0,0 -to_gray[-1] -n[-1] 0,255 -to_rgba[-1] -expand_xy[-1,-2] $Exp -warp[0] [1],1,1,1 -crop $Exp,$Exp,{$Exp+$W_origine},{$Exp+$H_origine}
	-endif
	-if {$Test==11} # Test 12 Bruit Niveaux de gris
		Exp={{{w}+{h}}/8}
		{w},{h},1,4 -gimp_noise[-1] 200,0,0,0,0 -to_gray[-1] -n[-1] 0,255 -to_rgba[-1] -expand_xy[-1,-2] $Exp,0 -warp[0] [1],1,1,1 -autocrop[-1,-2]
	-endif
	-if {$Test==12} # Test 13 Bruit Niveaux de gris
		Exp={{{w}+{h}}/8}
		{w},{h},1,4 -gimp_noise[-1] 200,0,0,0,0 -to_gray[-1] -n[-1] 0,255 -to_rgba[-1] -expand_xy[-1,-2] $Exp,2 -warp[0] [1],1,1,1
	-endif

	-if {$Un_Calque==1} -rm[1] -endif

  -endl -done

Tests_Warp_samj_preview :
	-gimp_split_preview "-Tests_Warp_samj ${1--2}",$-1 



						################################################################
						##                                                            ##
						##                    FIN   Tests_Warp_samj                   ##
						##                                                            ##
						################################################################

						################################################################
						##                                                            ##
						##                    TEST  balle_3D_samj                     ##
						##                                                            ##
						################################################################

#	version 1.00 01 01 2013
#	rsultat trop noir pour remplacer -ball_modification_samj

#@gimp Test Balle 3D : balle_3D_samj, balle_3D_samj
#@gimp : note = note("Balle avec sphere3d")
#@gimp : sep = separator(), note = note("<small>Position</small>")
#@gimp : Position X (%) = float(50,0,100)
#@gimp : Position Y (%) = float(50,0,100)
#@gimp : sep = separator(), note = note("<small>Balle</small>")
#@gimp : Dimension balle = int(300,10,600)
#@gimp : Balle = color(255,0,0)
#@gimp : Nb Recursions = int(3,1,5)
#@gimp : sep = separator(), note = note("<small>Rendu 3D</small>")
#@gimp : Object size = float(1,-1,3)
#@gimp : FOV = float(15,1,90)
#@gimp : X-light = float(30,-100,100)
#@gimp : Y-light = float(-50,-100,100)
#@gimp : Z-light = float(-100,-100,0)
#@gimp : Specular lightness = float(0.20,0,1)
#@gimp : Specular shininess = float(0.60,0,3)
#@gimp : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong")
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

balle_3D_samj :

	X_position={round({{{w}*{$1/100}}-{$3/2}})}
	Y_position={round({{{h}*{$2/100}}-{$3/2}})}

	Dimension_balle=$3 # limiter pour ordi 32 bits
	R_Balle=$4
	V_Balle=$5
	B_Balle=$6
	Nb_Recursions=$7
	R3D_Object_size=$8
	R3D_FOV=$9
	R3D_X_light=$10
	R3D_Y_light=$11
	R3D_Z_light=$12
	R3D_Specular_lightness=$13
	R3D_Specular_shininess=$14
	R3D_Rendering_mode=$15


  -repeat @# -l[$>]	


	{w},{h},1,4
	-rm[-2]
	-sphere3d $Dimension_balle,$Nb_Recursions
	-color3d[-1] $R_Balle,$V_Balle,$B_Balle
	-gimp_render3d[-1] {$Dimension_balle*6},{$Dimension_balle*6},$R3D_Object_size,0,0,0,$R3D_FOV,$R3D_X_light,$R3D_Y_light,$R3D_Z_light,$R3D_Specular_lightness,$R3D_Specular_shininess,$R3D_Rendering_mode
	-n[-1] 0,255
	-to_rgba[-1]
	-resize[-1] $Dimension_balle,$Dimension_balle,1,3
	-if {im<0} -c[-1] 0,255 -elif {iM>255} -c[-1] 0,255 -endif
	-gimp_compose_1530_softlight[-1,-2] 1,1

  -endl -done

						################################################################
						##                                                            ##
						##                  FIN  TEST  balle_3D_samj                  ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##                        Harmonograph                        ##
						##                                                            ##
						################################################################

##	 gmic -m samj.gmic 800,800,1,4 -fill_color[-1] 0,0,0,255 -v - -Harmonograph_samj 50,50,255,128,64,255,0,0,1000,0,400,75,150,125,50,4,6,4,10,15,360,0,0,0,0,0,0.0515873,0,0,0,27,1,0 -v + -o Harmonograph.png
##	version 1.02 du 3 janvier 2013
##
#@gimp Harmonograph : Harmonograph_samj, Harmonograph_samj(1)
#@gimp : note = link("http://en.wikipedia.org/wiki/Harmonograph")
#@gimp : sep = separator(), note = note("<small>Centre / Center</small>")
#@gimp : Centre / Center X (%) = float(50,0,100)
#@gimp : Centre / Center Y (%) = float(50,0,100)
#@gimp : sep = separator(), note = note("<small>Harmonograph</small>")
#@gimp : Stylo / Pen (Couleur/Color) = color(255,128,64,255)
#@gimp : Stylo / Pen (Variation de couleur/Color variation) = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Stylo / Pen (Dilate Pixels)  = int(0,0,32)
#@gimp : It\303\251rations = int(1000,2,30000)
#@gimp : Multiplier  = choice(0,"Iterations * 1","Iterations * 5 LENT / SLOW","Iterations * 10 TRES LENT / VERY SLOW")
#@gimp : Increment Temps / Time increment [*10000]= float(400,10,500)
#@gimp : sep = separator(), note = note("<small>Amplitude</small>")
#@gimp : Amplitude1 = float(50,0,1000)
#@gimp : Amplitude2 = float(150,0,1000)
#@gimp : Amplitude3 = float(100,0,1000)
#@gimp : Amplitude4 = float(200,0,1000)
#@gimp : sep = separator(), note = note("<small>Fr\303\251quence / Frequency</small>")
#@gimp : Frequence1 = float(4,0,16)
#@gimp : Frequence2 = float(6,0,16)
#@gimp : Frequence3 = float(2,0,16)
#@gimp : Frequence4 = float(2,0,16)
#@gimp : sep = separator(), note = note("<small>Phase</small>")
#@gimp : Phase1 = float(15,0,360)
#@gimp : Phase2 = float(270,0,360)
#@gimp : Phase3 = float(75,0,360)
#@gimp : Phase4 = float(60,0,360)
#@gimp : sep = separator(), note = note("<small>Amortissement / Damping</small>")
#@gimp : Amort1 = float(0.04,0,1)
#@gimp : Amort2 = float(0.04,0,1)
#@gimp : Amort3 = float(0.05,0,1)
#@gimp : Amort4 = float(0.06,0,1)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")



Harmonograph_samj :

	centre_origine_X={$1/100*w}
	centre_origine_Y={$2/100*h}
	
	R_Couleur_Stylo=$3
	V_Couleur_Stylo=$4
	B_Couleur_Stylo=$5
	A_Couleur_Stylo=$6
	Variation_de_couleur=$7
	Dilate_Stylo=$8
	Iterations=$9
	Multiplier_Iterations=$10
	Increment_temps=$11
	
	Amplitude1=$12
	Amplitude2=$13
	Amplitude3=$14
	Amplitude4=$15
	Frequence1=$16
	Frequence2=$17
	Frequence3=$18
	Frequence4=$19
	Phase1=$20
	Phase2=$21
	Phase3=$22
	Phase4=$23
	Amort1=$24
	Amort2=$25
	Amort3=$26
	Amort4=$27
	
			## divers
	Flou_Harmonograph=$28
	Spread_Harmonograph=$29
	Deform_Harmonograph=$30
	blend=$31
	opacite=$32


####### Ligne de commandes		

	-to_rgba

	{w},{h},1,4		## crer une image transparente aux mmes dimensions que l'image d'origine


	Nb_Boucle=1
	temps=0
	Ancien_point_X=0
	Nouveau_point_X=0
	Ancien_point_Y=0
	Nouveau_point_Y=0

	R_Couleur_origine=$R_Couleur_Stylo
	V_Couleur_origine=$V_Couleur_Stylo
	B_Couleur_origine=$B_Couleur_Stylo
	A_Couleur_origine=$A_Couleur_Stylo
	
	Increment_temps={$Increment_temps/10000}
	Phase1={$Phase1/180*{pi}}
	Phase2={$Phase2/180*{pi}}
	Phase3={$Phase3/180*{pi}}
	Phase4={$Phase4/180*{pi}}

	-if {$Multiplier_Iterations>0}
		Iterations={$Iterations*$Multiplier_Iterations*5}
	-endif

	-repeat $Iterations

		-if {$Variation_de_couleur==1}
				R_Couleur_Stylo={round({(?(255))})}
				V_Couleur_Stylo={round({(?(255))})}
				B_Couleur_Stylo={round({(?(255))})}
				##A_Couleur_Stylo={{round({(?(200))})}+55}
		-endif

		## couleurs nuances
		-if {$Variation_de_couleur>1}

			Valeur_variation_couleur=16

			-if {$Variation_de_couleur==3}
				Valeur_variation_couleur=32
			-endif

			-if {$Variation_de_couleur==4}
				Valeur_variation_couleur=64
			-endif						

			R_Couleur_Stylo={round({$R_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$R_Couleur_Stylo>255}
						R_Couleur_Stylo=$R_Couleur_origine
				-endif
				-if {$R_Couleur_Stylo<0}
						R_Couleur_Stylo=$R_Couleur_origine
				-endif	

			V_Couleur_Stylo={round({$V_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$V_Couleur_Stylo>255}
						V_Couleur_Stylo=$V_Couleur_origine
				-endif
				-if {$V_Couleur_Stylo<0}
						V_Couleur_Stylo=$V_Couleur_origine
				-endif

			B_Couleur_Stylo={round({$B_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$B_Couleur_Stylo>255}
						B_Couleur_Stylo=$B_Couleur_origine
				-endif
				-if {$B_Couleur_Stylo<0}
						B_Couleur_Stylo=$B_Couleur_origine
				-endif

		-endif
		
		Nouveau_point_X={$centre_origine_X+{{$Amplitude1*{sin({{$Frequence1*$temps}+$Phase1})}*{exp({-$Amort1*$temps})}}+{$Amplitude2*{sin({{$Frequence2*$temps}+$Phase2})}*{exp({-$Amort2*$temps})}}}}
		Nouveau_point_Y={$centre_origine_Y+{{$Amplitude3*{sin({{$Frequence3*$temps}+$Phase3})}*{exp({-$Amort3*$temps})}}+{$Amplitude4*{sin({{$Frequence4*$temps}+$Phase4})}*{exp({-$Amort4*$temps})}}}}

		-if {$Nb_Boucle>1}
			-line[-1] $Ancien_point_X,$Ancien_point_Y,$Nouveau_point_X,$Nouveau_point_Y,1,$R_Couleur_Stylo,$V_Couleur_Stylo,$B_Couleur_Stylo,$A_Couleur_Stylo
		-endif

		Ancien_point_X=$Nouveau_point_X
		Ancien_point_Y=$Nouveau_point_Y

		temps={$temps+$Increment_temps}

		Nb_Boucle={$Nb_Boucle+1}

	-done

	-if {$Dilate_Stylo>0} -dilate_circ[-1] $Dilate_Stylo -endif

	-blur[-1] $Flou_Harmonograph

	-spread[-1] $Spread_Harmonograph

	-deform[-1] $Deform_Harmonograph

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif

	## vrification ##	
	#-text_outline[0] $Amplitude1,10,10,64,1,1,255,255,255



						################################################################
						##                                                            ##
						##                    FIN  Harmonograph                       ##
						##                                                            ##
						################################################################


						################################################################
						##                                                            ##
						##                      Pintograph_samj                       ##
						##                                                            ##
						################################################################

##	variante de Harmonograph sans amortissement
##	-Pintograph_samj 50,50,255,128,64,255,0,0,5000,0,40,200,50,100,300,4,4.05,4.16,3.95636,90,120,75,30,0,0,0,27,1,0
##	-Pintograph_samj 50,50,255,128,64,255,0,0,10000,2,10,200,200,200,100,4,4,4.1,4.1,0,75,75,75,0,0,0,27,1,0
##	-Pintograph_samj 50,50,255,128,64,255,0,0,10000,2,10,200,200,200,100,4,4,4,4.1,0,75,75,75,0,0,0,27,1,0
##	version 1.00 du 3 janvier 2013
##
#@gimp Pintograph : Pintograph_samj, Pintograph_samj(1)
#@gimp : note = link("http://en.wikipedia.org/wiki/Pintograph")
#@gimp : sep = separator(), note = note("<small>Centre / Center</small>")
#@gimp : Centre / Center X (%) = float(50,0,100)
#@gimp : Centre / Center Y (%) = float(50,0,100)
#@gimp : sep = separator(), note = note("<small>Pintograph</small>")
#@gimp : Stylo / Pen (Couleur/Color) = color(255,128,64,255)
#@gimp : Stylo / Pen (Variation de couleur/Color variation) = choice("Pas de variation / No change","Couleurs aleatoires / Random colors","Faiblement nuancee / Poorly nuanced","Moyennement nuancee / Moderately nuanced","Fortement nuancee / Highly nuanced")
#@gimp : Stylo / Pen (Dilate Pixels)  = int(0,0,32)
#@gimp : It\303\251rations = int(1000,2,30000)
#@gimp : Multiplier  = choice(0,"Iterations * 1","Iterations * 5 LENT / SLOW","Iterations * 10 TRES LENT / VERY SLOW")
#@gimp : Increment Temps / Time increment [*10000]= float(400,10,500)
#@gimp : sep = separator(), note = note("<small>Amplitude</small>")
#@gimp : Amplitude1 = float(50,0,1000)
#@gimp : Amplitude2 = float(150,0,1000)
#@gimp : Amplitude3 = float(100,0,1000)
#@gimp : Amplitude4 = float(50,0,1000)
#@gimp : sep = separator(), note = note("<small>Fr\303\251quence / Frequency</small>")
#@gimp : Frequence1 = float(4.00,0,16)
#@gimp : Frequence2 = float(4.05,0,16)
#@gimp : Frequence3 = float(4.16,0,16)
#@gimp : Frequence4 = float(4.32,0,16)
#@gimp : sep = separator(), note = note("<small>Phase</small>")
#@gimp : Phase1 = float(75,0,360)
#@gimp : Phase2 = float(150,0,360)
#@gimp : Phase3 = float(75,0,360)
#@gimp : Phase4 = float(60,0,360)
#@gimp : sep = separator(), note = note("<small>Divers / Foo</small>")
#@gimp : Flou / Blur = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Deformation = float(0,0,25)
#@gimp : sep = separator(), note = note("<small>Blend</small>")
#@gimp : Blend Mode = choice(27,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Opacit\303\251 / Opacity = float(1,0,1)
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Author : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")



Pintograph_samj :

	centre_origine_X={$1/100*w}
	centre_origine_Y={$2/100*h}
	
	R_Couleur_Stylo=$3
	V_Couleur_Stylo=$4
	B_Couleur_Stylo=$5
	A_Couleur_Stylo=$6
	Variation_de_couleur=$7
	Dilate_Stylo=$8
	Iterations=$9
	Multiplier_Iterations=$10
	Increment_temps=$11
	
	Amplitude1=$12
	Amplitude2=$13
	Amplitude3=$14
	Amplitude4=$15
	Frequence1=$16
	Frequence2=$17
	Frequence3=$18
	Frequence4=$19
	Phase1=$20
	Phase2=$21
	Phase3=$22
	Phase4=$23
	
			## divers
	Flou_Pintograph=$24
	Spread_Pintograph=$25
	Deform_Pintograph=$26
	blend=$27
	opacite=$28


####### Ligne de commandes		

	-to_rgba

	{w},{h},1,4		## crer une image transparente aux mmes dimensions que l'image d'origine


	Nb_Boucle=1
	temps=0
	Ancien_point_X=0
	Nouveau_point_X=0
	Ancien_point_Y=0
	Nouveau_point_Y=0

	R_Couleur_origine=$R_Couleur_Stylo
	V_Couleur_origine=$V_Couleur_Stylo
	B_Couleur_origine=$B_Couleur_Stylo
	A_Couleur_origine=$A_Couleur_Stylo
	
	Increment_temps={$Increment_temps/10000}
	Phase1={$Phase1/180*{pi}}
	Phase2={$Phase2/180*{pi}}
	Phase3={$Phase3/180*{pi}}
	Phase4={$Phase4/180*{pi}}

	-if {$Multiplier_Iterations>0}
		Iterations={$Iterations*$Multiplier_Iterations*5}
	-endif

	-repeat $Iterations

		-if {$Variation_de_couleur==1}
				R_Couleur_Stylo={round({(?(255))})}
				V_Couleur_Stylo={round({(?(255))})}
				B_Couleur_Stylo={round({(?(255))})}
				##A_Couleur_Stylo={{round({(?(200))})}+55}
		-endif

		## couleurs nuances
		-if {$Variation_de_couleur>1}

			Valeur_variation_couleur=16

			-if {$Variation_de_couleur==3}
				Valeur_variation_couleur=32
			-endif

			-if {$Variation_de_couleur==4}
				Valeur_variation_couleur=64
			-endif						

			R_Couleur_Stylo={round({$R_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$R_Couleur_Stylo>255}
						R_Couleur_Stylo=$R_Couleur_origine
				-endif
				-if {$R_Couleur_Stylo<0}
						R_Couleur_Stylo=$R_Couleur_origine
				-endif	

			V_Couleur_Stylo={round({$V_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$V_Couleur_Stylo>255}
						V_Couleur_Stylo=$V_Couleur_origine
				-endif
				-if {$V_Couleur_Stylo<0}
						V_Couleur_Stylo=$V_Couleur_origine
				-endif

			B_Couleur_Stylo={round({$B_Couleur_origine+{?(-$Valeur_variation_couleur,$Valeur_variation_couleur)}})}
				-if {$B_Couleur_Stylo>255}
						B_Couleur_Stylo=$B_Couleur_origine
				-endif
				-if {$B_Couleur_Stylo<0}
						B_Couleur_Stylo=$B_Couleur_origine
				-endif

		-endif
		
		Nouveau_point_X={$centre_origine_X+{{$Amplitude1*{sin({{$Frequence1*$temps}+$Phase1})}}+{$Amplitude2*{sin({{$Frequence2*$temps}+$Phase2})}}}}
		Nouveau_point_Y={$centre_origine_Y+{{$Amplitude3*{sin({{$Frequence3*$temps}+$Phase3})}}+{$Amplitude4*{sin({{$Frequence4*$temps}+$Phase4})}}}}

		-if {$Nb_Boucle>1}
			-line[-1] $Ancien_point_X,$Ancien_point_Y,$Nouveau_point_X,$Nouveau_point_Y,1,$R_Couleur_Stylo,$V_Couleur_Stylo,$B_Couleur_Stylo,$A_Couleur_Stylo
		-endif

		Ancien_point_X=$Nouveau_point_X
		Ancien_point_Y=$Nouveau_point_Y

		temps={$temps+$Increment_temps}

		Nb_Boucle={$Nb_Boucle+1}

	-done

	-if {$Dilate_Stylo>0} -dilate_circ[-1] $Dilate_Stylo -endif

	-blur[-1] $Flou_Pintograph

	-spread[-1] $Spread_Pintograph

	-deform[-1] $Deform_Pintograph

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif




						################################################################
						##                                                            ##
						##                     FIN  Pintograph_samj                   ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                   Test_Camouflage_samj                     ##
						##                                                            ##
						################################################################


#********** Test_Camouflage_samj **********
##
##	Version 1.00 samj 20130106
##	Version 1.01 ajout variation de couleurs
##	Version 1.03 ajout motif
##
#@gimp Test Camouflage : Test_Camouflage_samj, Test_Camouflage_samj_preview
#@gimp : sep = separator(), note = note("<small>Fond / Background</small>")
#@gimp : Motif / Pattern = choice(0,"Motif 1","Motif 2 Dense Clair","Motif 3 Lignes","Motif 4 Bulles")
#@gimp : Dimensions = float(10,0,60)
#@gimp : Seuil / Threshold = int(40,10,256)
#@gimp : Cut A Fond = int(0,0,255)
#@gimp : Cut B Fond = int(192,0,255)
#@gimp : Negative = bool(0)
#@gimp : sep = separator(), note = note("<small>Rendu / Rendering</small>")
#@gimp : Variations couleurs = choice(0,"Variations 1","Variations 2","Variations 3")
#@gimp : Type = choice(0,"Type 1","Type 2 avec Blend")
#@gimp : note = note(" ")
#@gimp : * Type 2 : Blend Mode = choice(22,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : * Type 2 : Blend Opacit\303\251 / Opacity = float(0.8,0,1)
#@gimp : note = note(" ")
#@gimp : Deformation = float(0,0,25)
#@gimp : Flou2 / Blur2 = float(1,1,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Cut A = int(0,0,255)
#@gimp : Cut B = int(255,0,255)
#@gimp : Courbe = int(128,0,255)
#@gimp : sep = separator(), note = note("<small>Texture</small>")
#@gimp : Amplitude = int(30,0,100)
#@gimp : Fibrousness = int(0,0,100)
#@gimp : Emboss = float(0.6,0,1)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Test_Camouflage_samj :

####### Dclaration des variables

Motif_Fond=$1
Flou_1=$2	# Dimensions
Seuil_otsu=$3
Normalize_otsu_A=$4
Normalize_otsu_B=$5
Inverser_Couleurs=$6
Variations_couleurs=$7
Type_rendu=$8
blend=$9
opacite=$10
Deformation=$11
Flou_2=$12
Spread_camouflage=$13
Cut_A=$14	
Cut_B=$15
Courbe=$16
Niveau_texture=$17
Fibrousness_texture=$18
Emboss_texture=$19

####### Ligne de commandes

  -repeat @# -l[$>]

	Largeur={w}
	Hauteur={h}
	-to_rgb

	-if {{$Motif_Fond==0}||{$Motif_Fond==1}||{$Motif_Fond==3}}
		-taquin[-1] {{round({{$Largeur+$Hauteur}/100})}+10},{{round({{$Largeur+$Hauteur}/100})}+10}
		-array_mirror[-1] 1
		-deform[-1] 10
		-spread[-1] 20
		-resize[-1] $Largeur,$Hauteur
	-else
		-gimp_blur_radial[-1] 20,0.5,1,100,0,1
		-resize[-1] $Largeur,{round({1+{$Hauteur/250}})}
		-resize[-1] $Largeur,$Hauteur
		-deform[-1] 40
	-endif

	-if {$Type_rendu==1}
		--gimp_do_nothing
	-endif

	-if {$Variations_couleurs==0}
		-c[-1] 32,223
	-endif

	-if {$Variations_couleurs==1}
		K_im_IM=1
		--gimp_do_nothing[-1]
		-gimp_decompose_channels[-1] 2,0,1,0 IMAX={round({{iM}-$K_im_IM})} IMIN={round({{im}+$K_im_IM})} -rm[-1,-2,-3]
		-if {$IMAX>255} IMAX=255 -endif -if {$IMIN<0} IMIN=0 -endif
		-c[-1] $IMIN,$IMAX
	-endif

	-if {$Variations_couleurs==3}
		-n[-1] 0,255
	-endif

	{w},{h},1,3

	-if {$Motif_Fond==0}
		-rand[-1] 0,255 
		-blur[-1] $Flou_1
		-otsu[-1] $Seuil_otsu
	-endif

	-if {$Motif_Fond==1}
		-rand[-1] -0,255
		--normalize[-1] -1,1
		-blur[-1,-2,-3] $Flou_1
		-*[-1,-2]
		-c[-1] -0.25,0.75
		-norm[-1]
		-to_gray[-1]
	-endif

	-if {$Motif_Fond==2}
		-plasma[-1] 10,3
		--normalize[-1] -0.8,1
		-blur[-1,-2] $Flou_1
		-*[-1,-2]
		-c[-1] -0.25,0.75
		-norm[-1]
		-to_gray[-1]
	-endif

	-if {$Motif_Fond==3}
		-rand[-1] 0,255
		-blur[-1] $Flou_1
		-otsu[-1] {$Seuil_otsu*4}
		{w},{h},1,3
		-rand[-1] 0,255
		-blur[-1] $Flou_1
		-otsu[-1] {$Seuil_otsu*10}
		-*[-1,-2]
		-blur[-1] {{round({{$Largeur+$Hauteur}/1000})}+0.1}
		-dilate_circ[-1] {{round({{$Largeur+$Hauteur}/100})}+1}
		-to_gray[-1]
	-endif

	-if {{$Normalize_otsu_A-$Normalize_otsu_B}==0}
		-n[-1] 0,255
	-else
		-if {$Normalize_otsu_A>$Normalize_otsu_B}
			-n[-1] $Normalize_otsu_B,$Normalize_otsu_A
		-else
			-n[-1] $Normalize_otsu_A,$Normalize_otsu_B
		-endif
	-endif

	-to_gray[-1] 
	-to_rgb[-1]

	-if {$Inverser_Couleurs==1}	
		-negative[-1]
	-endif

	#-gimp_decompose_channels 2,0,1,0 -remove[-2,-3,-4] -gimp_decompose_channels 2,1,1,0
	-gimp_decompose_channels[-1,-2] 2,0,1,0 -remove[-2,-3,-4] -gimp_decompose_channels[-1,-2,-3] 2,1,1,0

	-if {$Type_rendu==1}	# obtenir un fond de couleur diffrent
		-resize[-2] 7,7,1,3
		-resize[-2] 127,127,1,3
		-blur[-2] 10
		-resize[-2] $Largeur,$Hauteur,1,3
		-c[-2] 0,255
		-blur[-2] {{$Largeur+$Hauteur}/50}
		-if {$blend==0} -reverse[-1,-2] -endif
		-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
		-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
		-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
		-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
		-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
		-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
		-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
		-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
		-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
		-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
		-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
		-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
		-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
		-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
		-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
		-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
		-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
		-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
		-if {$blend==19} -compose_1530_median[-1,-2] -endif
		-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
		-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
		-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
		-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
		-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
		-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
		-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
		-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
		-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
		-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
		-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif
	-endif

	#*** appliquer sur tous les calques
	-deform $Deformation
	-blur $Flou_2
	-spread $Spread_camouflage

	-if {$Niveau_texture>0}
		-texturize_canvas $Niveau_texture,$Fibrousness_texture,$Emboss_texture
	-endif
	#*** FIN appliquer sur tous les calques
	
	-if {$Cut_A>$Cut_B}
		-c[-1] $Cut_B,$Cut_A
	-else
		-c[-1] $Cut_A,$Cut_B
	-endif

	-if {$Courbe!=128}
		-gimp_apply_curve[-1] 0,$Courbe,128,-1,128,-1,128,-1,128,-1,128,255,1,0,0,0,0
	-endif


  -endl -done

Test_Camouflage_samj_preview :
	-gimp_split_preview "-Test_Camouflage_samj ${1--2}",$-1


						################################################################
						##                                                            ##
						##                 FIN  Test_Camouflage_samj                  ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                 Test_Camouflage_2_samj                     ##
						##                                                            ##
						################################################################


#********** Test_Camouflage_2_samj **********
##
##	Version 1.00 samj 20130107
##	Version 1.02 ajout Motif
#@gimp Test 2 Camouflage : Test_Camouflage_2_samj, Test_Camouflage_2_samj_preview
#@gimp : sep = separator(), note = note("<small>Fond / Background</small>")
#@gimp : Motif / Pattern = choice(0,"Motif 1","Motif 2 Dense","Motif 3 Lignes","Motif 4 Bulles")
#@gimp : Dimensions = float(10,0,60)
#@gimp : Seuil / Threshold = int(40,10,256)
#@gimp : Normalize A Fond = int(0,0,255)
#@gimp : Normalize B Fond = int(192,0,255)
#@gimp : Negative = bool(0)
#@gimp : sep = separator(), note = note("<small>Rendu / Rendering</small>")
#@gimp : Nombre couleurs / Number colors = int(64,2,255)
#@gimp : Variations couleurs = choice(0,"Variations 1","Variations 2","Variations 3")
#@gimp : Formes = int(40,0,255)
#@gimp : Type = choice(0,"Type 1","Type 2 avec Blend")
#@gimp : note = note(" ")
#@gimp : * Type 2 : Blend Mode = choice(22,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : * Type 2 : Blend Opacit\303\251 / Opacity = float(0.8,0,1)
#@gimp : note = note(" ")
#@gimp : Deformation = float(0,0,25)
#@gimp : Flou2 / Blur2 = float(0,0,10)
#@gimp : Spread = float(0,0,10)
#@gimp : Cut A = int(0,0,255)
#@gimp : Cut B = int(255,0,255)
#@gimp : Courbe / Curve = int(128,0,255)
#@gimp : sep = separator(), note = note("<small>Texture</small>")
#@gimp : Amplitude = int(30,0,100)
#@gimp : Fibrousness = int(0,0,100)
#@gimp : Emboss = float(0.6,0,1)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Test_Camouflage_2_samj :

####### Dclaration des variables

Motif_Fond=$1
Flou_1=$2	# Dimensions
Seuil_otsu=$3
Normalize_otsu_A=$4
Normalize_otsu_B=$5
Inverser_Couleurs=$6
Nombre_de_couleurs=$7
Variations_couleurs=$8
Formes=$9
Type_rendu=$10
blend=$11
opacite=$12
Deformation=$13
Flou_2=$14
Spread_camouflage=$15
Cut_A=$16	
Cut_B=$17
Courbe=$18
Niveau_texture=$19
Fibrousness_texture=$20
Emboss_texture=$21

####### Ligne de commandes

  -repeat @# -l[$>]

	Largeur={w}
	Hauteur={h}
	-to_rgb
	
	-colormap[-1] $Nombre_de_couleurs,0 # modification /  version 1, plus lent et rsultat diffrent
	-resize[-1] $Largeur,$Hauteur

	-if {{$Motif_Fond==0}||{$Motif_Fond==1}||{$Motif_Fond==3}}
		-taquin[-1] {{round({{$Largeur+$Hauteur}/100})}+10},{{round({{$Largeur+$Hauteur}/100})}+10}
		-deform[-1] $Formes
	-else
		-deform[-1] {round({$Formes*0.75})}	
	-endif

	-resize[-1] $Largeur,$Hauteur
	-blur[-1] 2

	K_im_IM=16
	--gimp_do_nothing[-1]
	-gimp_decompose_channels[-1] 2,0,1,0 IMAX={round({{iM}-$K_im_IM})} IMIN={round({{im}+$K_im_IM})} -rm[-1,-2,-3]
	-if {$IMAX>255} IMAX=255 -endif -if {$IMIN<0} IMIN=0 -endif

	-if {$Variations_couleurs==1} -n[-1] 0,255 -endif
	-if {$Variations_couleurs==2} -c[-1] $IMIN,$IMAX -endif
	-if {$Variations_couleurs==3} -n[-1] $IMIN,$IMAX -endif

	-if {$Type_rendu==1}
		--gimp_do_nothing[-1]
	-endif

	{w},{h},1,3

	-if {$Motif_Fond==0}
		-rand[-1] 0,255 
		-blur[-1] $Flou_1
		-otsu[-1] $Seuil_otsu
	-endif

	-if {$Motif_Fond==1}
		-rand[-1] -0,255
		--normalize[-1] -1,1
		-blur[-1,-2,-3] $Flou_1
		-*[-1,-2]
		-c[-1] -0.25,0.75
		-norm[-1]
		-to_gray[-1]
	-endif

	-if {$Motif_Fond==2}
		-plasma[-1] 10,3
		--normalize[-1] -0.8,1
		-blur[-1,-2] $Flou_1
		-*[-1,-2]
		-c[-1] -0.25,0.75
		-norm[-1]
		-to_gray[-1]
	-endif	

	-if {$Motif_Fond==3}
		-rand[-1] 0,255
		-blur[-1] $Flou_1
		-otsu[-1] {$Seuil_otsu*4}
		{w},{h},1,3
		-rand[-1] 0,255
		-blur[-1] $Flou_1
		-otsu[-1] {$Seuil_otsu*10}
		-*[-1,-2]
		-blur[-1] {{round({{$Largeur+$Hauteur}/1000})}+0.1}
		-dilate_circ[-1] {{round({{$Largeur+$Hauteur}/100})}+1}
		-to_gray[-1]
	-endif

	-if {{$Normalize_otsu_A-$Normalize_otsu_B}==0}
		-n[-1] 0,255
	-else
		-if {$Normalize_otsu_A>$Normalize_otsu_B}
			-n[-1] $Normalize_otsu_B,$Normalize_otsu_A
		-else
			-n[-1] $Normalize_otsu_A,$Normalize_otsu_B
		-endif
	-endif

	-to_gray[-1]
	-to_rgb[-1]

	-if {$Inverser_Couleurs==1}	
		-negative[-1]
	-endif

	-gimp_decompose_channels[-1,-2] 2,0,1,0 -remove[-2,-3,-4] -gimp_decompose_channels[-1,-2,-3] 2,1,1,0

	-if {$Type_rendu==1}	# obtenir un fond de couleur diffrent
		-resize[-2] 7,7,1,3
		-resize[-2] 127,127,1,3
		-blur[-2] 10
		-resize[-2] $Largeur,$Hauteur,1,3
		-c[-2] 0,255
		-blur[-2] {{$Largeur+$Hauteur}/50}
		-if {$blend==0} -reverse[-1,-2] -endif
		-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
		-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
		-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
		-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
		-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
		-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
		-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
		-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
		-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
		-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
		-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
		-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
		-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
		-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
		-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
		-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
		-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
		-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
		-if {$blend==19} -compose_1530_median[-1,-2] -endif
		-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
		-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
		-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
		-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
		-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
		-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
		-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
		-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
		-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
		-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
		-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif
	-endif

	#*** appliquer sur tous les calques
	-deform $Deformation
	-blur $Flou_2
	-spread $Spread_camouflage

	-if {$Niveau_texture>0}
		-texturize_canvas $Niveau_texture,$Fibrousness_texture,$Emboss_texture
	-endif
	#*** FIN appliquer sur tous les calques
	
	-if {$Cut_A>$Cut_B}
		-c[-1] $Cut_B,$Cut_A
	-else
		-c[-1] $Cut_A,$Cut_B
	-endif

	-if {$Courbe!=128}
		-gimp_apply_curve[-1] 0,$Courbe,128,-1,128,-1,128,-1,128,-1,128,255,1,0,0,0,0
	-endif


  -endl -done

Test_Camouflage_2_samj_preview :
	-gimp_split_preview "-Test_Camouflage_2_samj ${1--2}",$-1


						################################################################
						##                                                            ##
						##                 FIN  Test_Camouflage_2_samj                ##
						##                                                            ##
						################################################################

						################################################################
						##                                                            ##
						##                       Gris_Y_samj                          ##
						##                                                            ##
						################################################################


# Pour obtenir rapidement un "beau" gris diffrent des options de "Gimp > Couleurs > Dsaturer"
#@gimp Gris Grey Canal Y : Gris_Y_samj, Gris_Y_samj
#@gimp : note = note("Canal Y de YUV  - Luminance")
#@gimp : note = link("http://fr.wikipedia.org/wiki/YUV")
#@gimp : note = link("http://en.wikipedia.org/wiki/YUV")
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/08</i>.</small>")

Gris_Y_samj :
-to_rgb -gimp_decompose_channels[-1] 4,0,1,0 -remove[-1,-2]


						################################################################
						##                                                            ##
						##                      FIN  Gris_Y_samj                      ##
						##                                                            ##
						################################################################


						################################################################
						##                                                            ##
						##                    XY_hardsketchbw_samj                    ##
						##                                                            ##
						################################################################

# version 1.00 2013 01 12
# version 1.01 modification -expand
# version 1.02 ajout couleur transparence
# Pour crer des effets sur les parties horizontales et verticales
#@gimp Hard sketch XY : XY_hardsketchbw_samj, XY_hardsketchbw_samj(0)
#@gimp : sep = separator(), note = note("<small>Hard Sketch BW</small>")
#@gimp : XY = float(0.2,0,1)
#@gimp : Amplitude = float(300,0,4000)
#@gimp : Density = float(50,0,100)
#@gimp : Smoothness = float(1,0,10)
#@gimp : Opacity = float(0.1,0,1)
#@gimp : Edge = float(20,0,100)
#@gimp : Fast approximation = bool(0)
#@gimp : Negative = bool(0)
#@gimp : sep = separator(), note = note("<small>Calques / Layers</small>")
#@gimp : Nb. = choice(0,"1 : XY","2 : XY + Hard Sketch BW Normal")
#@gimp : sep = separator(), note = note("<small>Sharpen</small>")
#@gimp : Octave Sharpening = bool(0)
#@gimp : sep = separator(), note = note("<small>Transparence / Transparency</small>")
#@gimp : Couleur / Color = color(255,255,255,255)
#@gimp : Remplir / Fill = bool(1)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

XY_hardsketchbw_samj :

XY=$1
Amplitude=$2
Density=$3
Smoothness=$4
Opacity=$5
Edge=$6
Fast_approximation=$7
Negative=$8
Calques=$9
Octave_Sharpening=$10
R_Transparence=$11
V_Transparence=$12
B_Transparence=$13
A_Transparence=$14
Remplir=$15

	Largeur={w}
	Hauteur={h}

	-to_rgba[-1]

	-if {$Remplir==1}		
		$Largeur,$Hauteur,1,4
		-fill_color[-1] $R_Transparence,$V_Transparence,$B_Transparence,$A_Transparence
		-gimp_compose_1530_alpha[-2,-1] 1,1
	-endif

	--gimp_do_nothing[-1]
	-if {$Calques==1} --gimp_do_nothing[-1] -endif

	-if {$Largeur>$Hauteur}
		Grande_dimension={$Largeur*1.5}
	-else
		Grande_dimension={$Hauteur*1.5}
	-endif

	Origine_X={round({{{$Grande_dimension}-$Largeur}/2})}
	Origine_Y={round({{{$Grande_dimension}-$Hauteur}/2})}

	-expand_x[-1] $Origine_X,2
	-expand_y[-1] $Origine_Y,2


	-twirl[-1] $XY,0.5,0.5,1
	-gimp_hardsketchbw[-1] $Amplitude,$Density,$Smoothness,$Opacity,$Edge,$Fast_approximation,$Negative
	-twirl[-1] -$XY,0.5,0.5,1

	-expand_x[-2] $Origine_X,2
	-expand_y[-2] $Origine_Y,2


	-twirl[-2] -$XY,0.5,0.5,1
	-gimp_hardsketchbw[-2] $Amplitude,$Density,$Smoothness,$Opacity,$Edge,$Fast_approximation,$Negative
	-twirl[-2] $XY,0.5,0.5,1

	-gimp_compose_1530_average[-1,-2] 1,1
	-crop[-1] $Origine_X,$Origine_Y,{$Largeur+$Origine_X-1},{$Hauteur+$Origine_Y-1}

	-if {$Octave_Sharpening==1}	
		-gimp_unsharp_octave 4,5,3,0,0
	-endif

	-if {$Calques==1}
		-gimp_hardsketchbw[-2] $Amplitude,$Density,$Smoothness,$Opacity,$Edge,$Fast_approximation,$Negative
		-reverse[-1,-2]
	-endif



						################################################################
						##                                                            ##
						##                  FIN  XY_hardsketchbw_samj                 ##
						##                                                            ##
						################################################################


						################################################################
						##                                                            ##
						##                    Test_Watercolor_samj                    ##
						##                                                            ##
						################################################################


# version 1.00 2013 01 13
# version 1.01 nouveau plasma, simplification, diminution des variables
# version 1.02 variables proportionnelles aux dimensions, contours blancs ou noirs
# version 1.03 type contour, taches, menu, corner gradient, Supprimer couleurs origine
# image test http://fc08.deviantart.net/fs71/f/2012/138/d/3/stock_73__by_the1stgrape_stock-d508i6w.jpg  par Stock 73 
#@gimp Test Watercolor : Test_Watercolor_samj, Test_Watercolor_samj(0)
#@gimp : note = note("Inspiration : Create a colorful watercolor portrait with GIMP GMIC By Chris Fiedler")
#@gimp : note = link("http://www.youtube.com/watch?v=zxDHR-cwy5k")
#@gimp : sep = separator(), sep = separator(), note = note("<span foreground="red">Couleurs Ajout\303\251es / Added Colors</span>")
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Colorisation / Colorization</small></span>")
#@gimp : Type = choice(0,"Sans/Without Colorisation","Avec/With Colorisation")
#@gimp : Colorisation  = color(236,236,32)
#@gimp : Niveau/Intensity = float(0.8,0,1)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Plasma vs Gradient</small></span>")
#@gimp : Choix/Choice = choice(1,"Sans/Without","Plasma","4 Colors - Gradient")
#@gimp : Normalize Plasma = int(32,0,255)
#@gimp : Coin/Corner 1 Gradient  = color(255,255,0,255)
#@gimp : Coin/Corner 2 Gradient  = color(0,0,255,255)
#@gimp : Coin/Corner 3 Gradient  = color(255,0,0,255)
#@gimp : Coin/Corner 4 Gradient  = color(0,255,0,255)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Taches fonc\303\251es / Dark Spots</small></span>")
#@gimp : Ajouter/Add = bool(1)
#@gimp : Dimensions = float(2.75,0,60)
#@gimp : Seuil / Threshold = int(40,10,256)
#@gimp : Deform = float(0.1,0,3)
#@gimp : Surface Avec Taches/With Spots = float(4,1,10)
#@gimp : Flou/Blur = float(1.6,0,20)
#@gimp : Blend Opacit\303\251 / Opacity = float(0.07,0,1)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Sans Couleurs Origine / Without Colors of Origin</small></span>")
#@gimp : Supprimer couleurs origine/Delete original colors = bool(0)
#@gimp : sep = separator(), sep = separator(), note = note("<span foreground="red">Segmentation</span>")
#@gimp : Edge threshold [Segmentation] = float(2.00,0,15)
#@gimp : Smoothness [Segmentation] = float(3.80,0,5)
#@gimp : Edge threshold [Segmentation 2] = float(3.37,0,15)
#@gimp : Smoothness [Segmentation 2] = float(0.89,0,5)
#@gimp : Blend 1 = float(0.5,0,1)
#@gimp : sep = separator(), sep = separator(), note = note("<span foreground="red">Edges</span>")
#@gimp : Smoothness [Edges] = float(0,0,0.2)
#@gimp : Threshold [Edges] = float(6.6,0,50)
#@gimp : Blend 2 = float(1,-1,1)
#@gimp : sep = separator(), sep = separator(), note = note("<span foreground="red">Contours</span>")
#@gimp : Type Contour = choice(3,"Sans/Without Contour","Ellipse","Ellipse+Deform","Ellipse+Deform+Spread")
#@gimp : Contours = float(1.00,0,3)
#@gimp : sep = separator(), sep = separator(), note = note("<span foreground="red">Texture</span>")
#@gimp : Amplitude = int(10,0,100)
#@gimp : Fibrousness = int(2,0,100)
#@gimp : Emboss = float(0.3,0,1)
#@gimp : sep = separator(), sep = separator(), note = note("<span foreground="red">M\303\251lange / Blend</span>")
#@gimp : Blend Mode = choice(22,"Non / No","Alpha","Average","Color Burn","Darken","Difference","Divide","Dodge","Edges","Exclusion","Freeze","Grain Extract","Grain Merge","Hard Light","Hue","Interpolation","Lighten","Lightness","Luminance","Median","Multiply","Negation","Overlay","Reflect","Saturation","Screen","Shape Average","Soft Light","Stamp","Value","Xor")
#@gimp : Blend Opacit\303\251 / Opacity = float(0.25,0,1)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/01/25</i>.</small>")

Test_Watercolor_samj :

Type=$1
R_Color_Type_2=$2
V_Color_Type_2=$3
B_Color_Type_2=$4
Color_Intensity=$5
Plasma_Gradient=$6
Normalize_Plasma=$7
R_Coin_1=$8
V_Coin_1=$9
B_Coin_1=$10
A_Coin_1=$11
R_Coin_2=$12
V_Coin_2=$13
B_Coin_2=$14
A_Coin_2=$15
R_Coin_3=$16
V_Coin_3=$17
B_Coin_3=$18
A_Coin_3=$19
R_Coin_4=$20
V_Coin_4=$21
B_Coin_4=$22
A_Coin_4=$23
Ajouter_Taches=$24
Flou_Taches=$25
Otsu_taches=$26
Deformation_Taches=$27
Dimension_Sans_Tache=$28
Flou_tache=$29
M_Blend_Opacite=$30
Supprimer_couleurs_origine=$31
Edge_threshold_Segmentation=$32
Smoothness_Segmentation=$33
B_Edge_threshold_Segmentation=$34
B_Smoothness_Segmentation=$35
Blend_A=$36
Smoothness_Edges=$37
Threshold_Edges=$38
Blend_B=$39
Type_Contour=$40
Contours=$41
Niveau_texture=$42
Fibrousness_texture=$43
Emboss_texture=$44
blend=$45
opacite=$46


	Largeur={w}
	Hauteur={h}

	-if {$Supprimer_couleurs_origine==1}
		-to_rgb -gimp_decompose_channels[-1] 4,0,1,0 -remove[-1,-2]
	-endif

	-if {$Type==1} # donner une couleur dominante
		-to_rgba[-1]
		$Largeur,$Hauteur,1,3
		-fill_color[-1] $R_Color_Type_2,$V_Color_Type_2,$B_Color_Type_2
		-gimp_compose_1530_average[-1,-2] $Color_Intensity,1 
	-endif

	# adoucir
	-gimp_bilateral[-1] 10,7,2,0

	# mlanger 2 gimp_segment_watershed et obtenir 2 images
	--gimp_do_nothing[-1]
	-gimp_segment_watershed[-1] $Edge_threshold_Segmentation,$Smoothness_Segmentation,0
	-deform[-1] 1
	-gimp_segment_watershed[-2] $B_Edge_threshold_Segmentation,$B_Smoothness_Segmentation,0
	-gimp_compose_1530_average[-1,-2] $Blend_A,1	
	--gimp_do_nothing[-1]

	# crer des contours blancs ou noirs
	-gimp_edges[-1] $Smoothness_Edges,$Threshold_Edges,0
	-if {$Blend_B>0}
		-gimp_compose_1530_divide[-1,-2] $Blend_B,0 # blanc
	-else
		-gimp_compose_1530_divide[-1,-2] {1+$Blend_B},1 # noir
	-endif

	# crer un masque pour garder le centre et donner une texture
	-if {{$Type_Contour==1}||{$Type_Contour==2}||{$Type_Contour==3}}
		$Largeur,$Hauteur,1,4
		-ellipse[-1] {$Largeur/2},{$Hauteur/2},{$Largeur/2.2},{$Hauteur/2.2},0,1,255,255,255,255
		-if {{$Type_Contour==2}||{$Type_Contour==3}}
			-deform[-1] {{round({{$Largeur+$Hauteur}/50})}*$Contours}
		-endif
		-if {$Type_Contour==3}
			-spread[-1] {{round({{$Largeur+$Hauteur}/100})}*$Contours}
		-endif
		-fisheye[-1] {$Largeur/2},{$Hauteur/2},100,2
		-gimp_compose_1530_divide[-1,-2] 1,0
		# -texturize_canvas[-1] $Niveau_texture,$Fibrousness_texture,$Emboss_texture
	-endif

	-texturize_canvas[-1] $Niveau_texture,$Fibrousness_texture,$Emboss_texture

	--gimp_do_nothing[-1]

	# crer des fausses couleurs
	-if {$Plasma_Gradient==1} # plasma
		$Largeur,$Hauteur,1,4
		-plasma[-1] 10,3
		$Largeur,$Hauteur,1,4
		-plasma[-1] 10,3	
		-+[-1,-2]	
		-blur[-1] {{round({{$Largeur+$Hauteur}/100})}+2}
		-n[-1] $Normalize_Plasma,255
		-reverse[-1,-2]
		-gimp_decompose_channels[-1,-2] 2,0,1,0 -remove[-2,-3,-4] -gimp_decompose_channels[-1,-2,-3] 2,1,1,0
	-endif
	-if {$Plasma_Gradient==2} # corner gradient
		$Largeur,$Hauteur,1,4
		-fill_color[-1] 255,255,255,255
		-gimp_corner_gradient[-1] $R_Coin_1,$V_Coin_1,$B_Coin_1,$A_Coin_1,$R_Coin_2,$V_Coin_2,$B_Coin_2,$A_Coin_2,$R_Coin_3,$V_Coin_3,$B_Coin_3,$A_Coin_3,$R_Coin_4,$V_Coin_4,$B_Coin_4,$A_Coin_4
		-reverse[-1,-2]
		-gimp_decompose_channels[-1,-2] 2,0,1,0 -remove[-2,-3,-4] -gimp_decompose_channels[-1,-2,-3] 2,1,1,0
	-endif

	-if {$Ajouter_Taches==1}
		$Largeur,$Hauteur,1,4
		-rand[-1] 0,255 -blur[-1] $Flou_Taches -otsu[-1] $Otsu_taches -n[-1] 0,255
		-ellipse[-1] {$Largeur/2},{$Hauteur/2},{$Largeur/$Dimension_Sans_Tache},{$Hauteur/$Dimension_Sans_Tache},0,1,0,0,0,00
		-deform[-1] {{round({{$Largeur+$Hauteur}/50})}*$Deformation_Taches}
		-to_graya[-1] # les taches colores ne rendent pas un bel effet
		-to_rgba[-1]
		-blur[-1] $Flou_tache
		-gimp_compose_1530_darken[-1,-3] $M_Blend_Opacite,1
	-endif

	-if {$blend==0} -reverse[-1,-2] -endif
	-if {$blend==1} -gimp_compose_1530_alpha[-1,-2] $opacite,1 -endif		
	-if {$blend==2} -gimp_compose_1530_average[-1,-2] $opacite,1 -endif		
	-if {$blend==3} -gimp_compose_1530_colorburn[-1,-2] $opacite,1 -endif		
	-if {$blend==4} -gimp_compose_1530_darken[-1,-2] $opacite,1 -endif		
	-if {$blend==5} -gimp_compose_1530_difference[-1,-2] $opacite,1 -endif
	-if {$blend==6} -gimp_compose_1530_divide[-1,-2] $opacite,1 -endif
	-if {$blend==7} -gimp_compose_1530_dodge[-1,-2] $opacite,1 -endif
	-if {$blend==8} -gimp_compose_1530_edges[-1,-2] $opacite,1 -endif
	-if {$blend==9} -gimp_compose_1530_exclusion[-1,-2] $opacite,1 -endif
	-if {$blend==10} -gimp_compose_1530_freeze[-1,-2] $opacite,1 -endif
	-if {$blend==11} -gimp_compose_1530_grainextract[-1,-2] $opacite,1 -endif
	-if {$blend==12} -gimp_compose_1530_grainmerge[-1,-2] $opacite,1 -endif
	-if {$blend==13} -gimp_compose_1530_hardlight[-1,-2] $opacite,1  -endif
	-if {$blend==14} -gimp_compose_1530_hue[-1,-2] $opacite,1 -endif
	-if {$blend==15} -gimp_compose_1530_interpolation[-1,-2] $opacite,1 -endif
	-if {$blend==16} -gimp_compose_1530_lighten[-1,-2] $opacite,1 -endif
	-if {$blend==17} -gimp_compose_1530_lightness[-1,-2] $opacite,1 -endif
	-if {$blend==18} -gimp_compose_1530_luminance[-1,-2] $opacite,1 -endif
	-if {$blend==19} -compose_1530_median[-1,-2] -endif
	-if {$blend==20} -gimp_compose_1530_multiply[-1,-2] $opacite,1 -endif
	-if {$blend==21} -gimp_compose_1530_negation[-1,-2] $opacite,1 -endif
	-if {$blend==22} -gimp_compose_1530_overlay[-1,-2] $opacite,1 -endif
	-if {$blend==23} -gimp_compose_1530_reflect[-1,-2] $opacite,1 -endif
	-if {$blend==24} -gimp_compose_1530_saturation[-1,-2] $opacite,1 -endif
	-if {$blend==25} -gimp_compose_1530_screen[-1,-2] $opacite,1 -endif
	-if {$blend==26} -gimp_compose_1530_shapeaverage[-1,-2] $opacite,1 -endif
	-if {$blend==27} -gimp_compose_1530_softlight[-1,-2] $opacite,1 -endif
	-if {$blend==28} -gimp_compose_1530_stamp[-1,-2] $opacite,1 -endif
	-if {$blend==29} -gimp_compose_1530_value[-1,-2] $opacite,1 -endif
	-if {$blend==30} -gimp_compose_1530_xor[-1,-2] $opacite,1 -endif


						################################################################
						##                                                            ##
						##                  FIN  Test_Watercolor_samj                 ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##            Recolorize version 2013 01 15 modifie          ##
						##                                                            ##
						################################################################

# Merci  David Tschumperl pour ce superbe filtre :o)
# prsentation du filtre http://www.flickr.com/groups/gmic/discuss/72157632525934815/
#
# modification texte de prsentation, ajout nuances niveaux de gris et normalize, ajour dgoulinage, ajout commentaires
#@gimp Recolorize 20130115 : gimp_recolorize_20130115_modifie, gimp_recolorize_20130115_modifie(1)
#@gimp : Smoothness = float(30,0,200)
#@gimp : Nuances/decompose  = choice(0,"Origine","Canal Y de YUV","Canal L de HSL 8","Canal L de LCH","Canal K de CMYK")
#@gimp : Normalize A = int(0,0,255)
#@gimp : Normalize B = int(255,0,255)
#@gimp : D\303\251goulinade A / Extension Colors A = int(0,0,20)
#@gimp : D\303\251goulinade B / Extension Colors B = float(0,0,10)
#@gimp : Pr\303\251cision = bool(1)
#@gimp : sep = separator()
#@gimp : note = note{"<b>Note :</b> This filter needs two layers to work properly. The bottom layer can be a B&amp;W or a colored image, while the
#@gimp : top layer contains color patches that will be extrapolated in a smart way (edge-directed) to fill the entire image. At the end,
#@gimp : you get a completely recolored image."}
#@gimp : sep = separator(), note = note("<small>Author : <i>David Tschumperl&#233;</i>.      Latest update: <i>2013/01/18 samj</i>.</small>")
gimp_recolorize_20130115_modifie :

Smoothness=$1
Nuances=$2
Normalize_A=$3
Normalize_B=$4
Degoulinade_A=$5
Degoulinade_B=$6
Precision=$7

    -rv[-2,-1] # inverser les calques

	-dilate_circ[-1] $Degoulinade_A # agrandir

	-if {$Nuances==0}
		-channels[-2] 0 # Convert to pure gray.
	-elif {$Nuances==1}
		-gimp_decompose_channels[-2] 4,0,1,0 -remove[-2,-3] ## modif samj pour obtenir des nuances diffrentes  partir d'une image couleurs >> Canal Y de YUV
	-elif {$Nuances==2}		
		-to_rgb[-2] -rgb2hsl8[-2] -split[-2] c -rm[-3,-4]  ## idem >> Canal L de HSL
	-elif {$Nuances==3}
		-to_rgb[-2] -rgb2lab8[-2] -split[-2] c -rm[-2,-3]  ## idem >> Canal L de LCH
	-elif {$Nuances==4}
		-to_rgb[-2] -rgb2cmyk[-2] -split[-2] c -rm[-3,-4,-5] -negative[-2]  ## idem >> Canal K invers de CMYK
	-endif

	-to_rgb[-2] -to_rgba[-1] # conversion modes
	
	-n[-2] $Normalize_A,$Normalize_B

	-split_opacity[-1] # cration d'une nouvelle image o les couleurs deviennent blanches.

	-neq[-1] 0  # Retrieve mask of color patchs. La 3 image est un masque de 2 couleurs o l'espace occup par les couleurs d'origine est un peu plus grand.
	# il y a 3 images : -3=l'image geise  -2=les couleurs  -1=le masque

    -srgb2rgb[-3,-2] # conversion modes
	-rgb2lab8[-3,-2] # conversion modes
	-channels[-3] 0  # on garde un seul canal, image -3 devient grise
	-channels[-2] 1,2 # Now, list is [0]=lightness / [1]=chroma / [2]=mask.	

    -+[-2] 1 #  ? (dans Gimp, utiliser mode diffrence et courbes pour voir l'effet)

	-*[-2] [-1] # mlange *

	--gradient_norm[-3] # cration d'une 4 image qui est contours de image 3
	
	-blur[-1] $Degoulinade_B # flou

	-*[-1] -1 # image 4 ngative

	-watershed[-3] [-1] # image 2 (chroma) se remplit de couleurs (les couleurs s'tendent aux limites dfinies par l'image 4)

	-rm[-1] # supprimer image 4 des contours

	--[-2] 1 # enlever les traits ? (dans Gimp, utiliser mode diffrence et courbes pour voir l'effet)
	# Get first estimate for the color interpolation.

	-if {$Precision==1}
		### permet de bien dfinir les contours	
			--diffusiontensors[-3] 0,1,1,1 # cration d'une image diffusion tensors 4  partir de l'image grise 1 

			-eq[-2] 0 # masque = fond blanc, traits de couleurs noirs sur console 
			
			-*[-1] [-2] # mlange masque et diffusion tensors 

			-rm[-2] # supprimer masque

			-smooth[-2] [-1],$Smoothness,0.8,45,2,0 # adoucir image 2 (chroma)
		### FIN permet de bien dfinir les contours	
	-endif

	-rm[-1] # supprimer diffusion tensors 

    -a[-2,-1] c # append c

	-lab82rgb[-1] # conversion modes
	
	-rgb2srgb[-1] # conversion modes


						################################################################
						##                                                            ##
						##        FIN  Recolorize version 2013 01 15 modifie         ##
						##                                                            ##
						################################################################




						################################################################
						##                                                            ##
						##                         Denim_samj                         ##
						##                                                            ##
						################################################################


# version 1.00 2013 01 17
#@gimp Denim Texture : Denim_samj, Denim_samj(0)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Texture</small></span>")
#@gimp : Dimension motif base = int(5,2,30)
#@gimp : Dilatation motif = int(2,0,5)
#@gimp : Retourner motif = bool(0)
#@gimp : D\303\251formation 1 = int(40,0,200)
#@gimp : D\303\251formation 2 = int(40,0,200)
#@gimp : Denim [bruit] = int(25,0,100)
#@gimp : Usure [bruit] = int(50,0,400)
#@gimp : Nettet\303\251 = float(0,0,500)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Couleurs</small></span>")
#@gimp : Couleur Denim  = color(43,108,126,255)
#@gimp : Couleur Usure  = color(255,255,255,255)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Mode de sortie</small></span>")
#@gimp : Cr\303\251er un nouveau calque = bool(0)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs  : <i>Samj</i>.      Version : <i>2013/01/25</i>.</small>")

Denim_samj :

Dimension_Motif=$1 # 5
Dilatation=$2
Retourner_motif=$3
Deformation_1=$4
Deformation_2=$5
Amplitude_Bruit=$6 # 30
Amplitude_Bruit_2=$7
Nettete=$8

# couleur 2B6C7E 43,108,126
R_Couleur_Denim=$9
V_Couleur_Denim=$10
B_Couleur_Denim=$11
A_Couleur_Denim=$12

R_Couleur_Usure=$13
V_Couleur_Usure=$14
B_Couleur_Usure=$15
A_Couleur_Usure=$16

Creer_un_nouveau_calque=$17

	Largeur={w}
	Hauteur={h}
	$Largeur,$Hauteur,1,4
	-fill_color[-1] $R_Couleur_Denim,$V_Couleur_Denim,$B_Couleur_Denim,$A_Couleur_Denim
	-to_rgba[-1]
	-gimp_noise[-1] $Amplitude_Bruit,0,7,0 # laisser la transparence
	$Dimension_Motif,$Dimension_Motif,1,4
	-if {$Retourner_motif==0}
		-line[-1] 0,$Dimension_Motif,$Dimension_Motif,0,1,0,0,0,255
	-else
		-line[-1] 0,0,$Dimension_Motif,$Dimension_Motif,1,0,0,0,255
	-endif
	-resize[-1] [-2],[-2],1,100%,0,2
	-dilate_circ[-1] $Dilatation
	-gimp_compose_1530_alpha[-1,-2] 1,0
	-water[-1] {$Deformation_1/1000},{$Deformation_2/100}
	-gimp_noise[-1] $Amplitude_Bruit_2,0,22,0 # bruit transparence
	$Largeur,$Hauteur,1,4
	-fill_color[-1] $R_Couleur_Usure,$V_Couleur_Usure,$B_Couleur_Usure,$A_Couleur_Usure
	-gimp_compose_1530_alpha[-1,-2] 1,1
	-sharpen[-1] $Nettete
	-reverse[-2,-1] # inverser les calques
	-if {$Creer_un_nouveau_calque==0}
		-rm[-1]
	-endif


						################################################################
						##                                                            ##
						##                       FIN  Denim_samj                      ##
						##                                                            ##
						################################################################






						################################################################
						##                                                            ##
						##               ANCIENNES FONCTIONS VERSION 1530             ##
						##     By David Tschumperle Modification samj (ajout _1530)   ##
						##                                                            ##
						################################################################

## version 2013/01/25 du site http://gmic.sourceforge.net/compatibility.gmic


compose_1530_alpha :
  -e[^-1] "compose_1530 image$? two-by-two, using alpha blending."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -r[-1] [-2],[-2],[-2],100%,0,0,0.5,0.5
    -to_colormode[-2] {a1=!(@{-2,s}%2);a2=!(s%2);max(@{-2,s}-a1,s-a2)+a1}
    -to_colormode[-1] {a=max(@{-2,s},s);a+(a%2)}
    -if {@{-2,s}==2||@{-2,s}==4} # Background has alpha.
      -_compose_1530_alpha[-2] -_compose_1530_alpha[-1]
      -sh[-1] {s-1},{s-1} --*[-3,-1] -rm[-2] -+[-3,-2] --[-2,-1]
      -sh[-1] 0,{s-2} -sh[-2] {@{-2,s}-1},{@{-2,s}-1}
      -max[-1] 1e-10 -/[-2] [-1] -*[-1] 255 -rm[-2,-1]
    -else                        # Background has no alpha.
      -sh[-1] 0,{s-2} -sh[-2] {@{-2,s}-1},{@{-2,s}-1} --[-2] [-4] -*[-2,-1] -/[-1] 255 -rm[-1] -+[-2,-1]
    -endif
  -endl -done -c 0,255 -v +

_compose_1530_alpha :
  -sh[-1] 0,{s-2} -sh[-2] {@{-2,s}-1},{@{-2,s}-1} -max[-1] 1e-10 -/[-1] 255 -*[-2,-1] -rm[-1]

compose_1530_average :
  -e[^-1] "compose_1530 image$? two-by-two, using average mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -+
  -endl -done -/ 2 -v +

compose_1530_colorburn :
  -e[^-1] "compose_1530 image$? two-by-two, using colorburn mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 --[-2] 255 -+[-1] 0.1 -/
  -endl -done -* 256 -+ 255 -c 0,255 -v +

compose_1530_darken :
  -e[^-1] "compose_1530 image$? two-by-two, using darken mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -min
  -endl -done -v +

compose_1530_difference :
  -e[^-1] "compose_1530 image$? two-by-two, using difference mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 --
  -endl -done -abs -v +

compose_1530_divide :
  -e[^-1] "compose_1530 image$? two-by-two, using divide mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -*[-2] 256 -+[-1] 1 -/
  -endl -done -c 0,255 -v +

compose_1530_dodge :
  -e[^-1] "compose_1530 image$? two-by-two, using dodge mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 --[-1] 255.1 -/
  -endl -done -* -256 -c 0,255 -v +

compose_1530_edges : -check {$1>=0}
  -e[^-1] "compose_1530 image$? using edge mode, with smoothness $1."
  -if {@#>1} -v - -to_rgb -r[^0] [0],0,0,0.5,0.5 -repeat @# -l[$>]
    --gradient_norm -+[-1] 1 -b[-1] $1 -n[-1] 1,10 -sqr[-1] -s[-2] c -*[-4--2] [-1] -a[-4--1] c
  -endl -done -r[^0] [0],0,0,0.5,0.5 -+ -s[-1] c -/[-4--2] [-1] -rm[-1] -a[-3--1] c -v + -endif

compose_1530_exclusion :
  -e[^-1] "compose_1530 image$? two-by-two, using exclusion mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 --*[-2] [-1] -/[-1] -128 -+
  -endl -done -v +

compose_1530_fade :
  -e[^-1] "compose_1530 image$? using fading mode."
  -v - -r[^0] @{-max_whd},100%,3
  -r[1--2] 100%,100%,100%,@{-max_s} -channels[-1] 0
  -repeat {@#-1} ---[-1] $> -abs[-1] --[-1] 1 -*[-1] -1 -max[-1] 0 -*[$>,-1] -done
  -rm[-1] -+ -v +

compose_1530_freeze :
  -e[^-1] "compose_1530 image$? two-by-two, using freeze mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 --[-2] 255 -sqr[-2] -+[-1] 0.1 -/
  -endl -done -- 255 -* -1 -c 0,255 -v +

compose_1530_grainextract :
  -e[^-1] "compose_1530 image$? two-by-two, using grain extract mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 --
  -endl -done -+ 128 -c 0,255 -v +

compose_1530_grainmerge :
  -e[^-1] "compose_1530 image$? two-by-two, using grain merge mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -+
  -endl -done -- 128 -c 0,255 -v +

compose_1530_hardlight :
  -e[^-1] "compose_1530 image$? two-by-two, using hard light mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5
    --ge[-1] 128 --*[-3] [-2] -/[-1] 128
    --[-4,-3] 255 -*[-4,-3] -/[-3] 128 --[-3] 255 -*[-3] -1
    -*[-3] [-2] -*[-2] -1 -+[-2] 1 -*[-2,-1] -+
  -endl -done -v +

compose_1530_hue :
  -e[^-1] "compose_1530 image$? two-by-two, using hue mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -to_rgba -sh 0,2
    -rgb2hsv[-2,-1] -sh[-2] 0,0 -j[-2] [-1] -rm[-5,-3,-1] -hsv2rgb[-1] -rm[-1]
  -endl -done -v +

compose_1530_interpolation :
  -e[^-1] "compose_1530 image$? two-by-two, using interpolation mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -* 0.012271846 -cos -/ -4 -+
  -endl -done -+ 0.5 -* 256 -v +

compose_1530_lighten :
  -e[^-1] "compose_1530 image$? two-by-two, using lighten mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -max
  -endl -done -v +

compose_1530_lightness :
  -e[^-1] "compose_1530 image$? two-by-two, using lightness mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -to_rgba -sh 0,2
    -rgb2lab[-2,-1] -sh[-2] 0,0 -j[-2] [-1],0,0,0,0 -rm[-5,-3,-1] -lab2rgb[-1] -rm[-1]
  -endl -done -v +

compose_1530_luminance :
  -e[^-1] "compose_1530 image$? two-by-two, using luminance mode."
  -v - -repeat {int(@#/2)}
    -to_colormode[-2,-1] 0 -r[-1] [-2],0,0,0.5,0.5 -to_rgba[-2,-1] -sh[-2,-1] 0,2
    -rgb2ycbcr[-2,-1] -sh[-2] 0,0 -j[-2] [-1],0,0,0,0 -rm[-5,-3,-1] -ycbcr2rgb[-1] -rm[-1]
  -mv[-1] 0 -done -v +

compose_1530_median :
  -e[^-1] "compose_1530 image$? using median mode."
  -if {@#==1} -return -endif
  -v - -r[^0] [0],0,0,0.5,0.5 -a z -permute zxyc -s y,-64
  -repeat @# -l[$>]
    -r 100%,{w*100}%
    -s z -median {w} w={w} -columns {int(w/2)} -r 1,{h/$w} -a z
  -endl -done -a y -permute yzxc -v +

compose_1530_multiply :
  -e[^-1] "compose_1530 image$? two-by-two, using multiply mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -*
  -endl -done -/ 255 -v +

compose_1530_negation :
  -e[^-1] "compose_1530 image$? two-by-two, using negation mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -+
  -endl -done -- 255 -abs -- 255 -* -1 -v +

compose_1530_overlay :
  -e[^-1] "compose_1530 image$? two-by-two, using overlay mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5
    --ge[-2] 128
    --*[-3] [-2] -/[-1] 128
    --[-4,-3] 255 -*[-4,-3] -/[-3] 128 --[-3] 255 -*[-3] -1
    -*[-3] [-2] -*[-2] -1 -+[-2] 1 -*[-2,-1] -+
  -endl -done -v +

compose_1530_reflect :
  -e[^-1] "compose_1530 image$? two-by-two, using reflect mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -sqr[-2] --[-1] 255.1 -/
  -endl -done -* -1 -c 0,255 -v +

compose_1530_rgba :
  -e[^-1] "compose_1530 image$? two-by-two, using alpha blending."
  -v - -to_rgb[0--1:2] -compose_1530_alpha -v +

compose_1530_saturation :
  -e[^-1] "compose_1530 image$? two-by-two, using saturation mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -to_rgba -sh 0,2
    -rgb2hsv[-2,-1] -sh[-2] 1,1 -j[-2] [-1],0,0,0,1 -rm[-5,-3,-1] -hsv2rgb[-1] -rm[-1]
  -endl -done -v +

compose_1530_screen :
  -e[^-1] "compose_1530 image$? two-by-two, using screen mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -- 255 -*
  -endl -done -/ 256 -- 255 -* -1 -v +

compose_1530_shapeaverage :
  -e[^-1] "compose_1530 image$? two-by-two, using shape average mode."
  -v - -repeat {int(@#/2)} -l[-2,-1] nm=@{0,n}
    -channels[-1] 0 -ge[-1] 50% -label_fg[-1] 0 nb={iM+1} -*[-1] 256
    -rv[-2,-1] m={im} M={iM} -n[-1] 0,255 -s[-1] c -+[^0] [0]
    -repeat {@#-1}
      -histogram[-1] {$nb*256},0,{$nb*256-1}
      -i[-2] 256,1,1,1,'x' -r[-2] {w},1,1,1,0,2 -*[-2] [-1] -r[-2,-1] $nb,1,1,1,2 -max[-1] 1 -/[-2,-1]
    -mv[-1] 1 -done
    -/[0] 256 -a[^0] c -*[-1] {($M-$m)/256} -+[-1] $m -point[-1] 0,0,0,1,0 -map[0] [-1] -rm[-1]
  -nm $nm,1 -endl -mv[-1] 0 -done -v +

compose_1530_softlight :
  -e[^-1] "compose_1530 image$? two-by-two, using soft light mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -/ 256 --*[-2] [-1] -*[-1] 2 -sqr[-3] -*[-2] [-3] -*[-2] -2 -+
  -endl -done -* 256 -v +

compose_1530_stamp :
  -e[^-1] "compose_1530 image$? two-by-two, using stamp mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -*[-1] 2 -+
  -endl -done -- 255 -c 0,255 -v +

compose_1530_value :
  -e[^-1] "compose_1530 image$? two-by-two, using value mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -to_rgba -sh 0,2
    -rgb2hsv[-2,-1] -sh[-2] 2,2 -j[-2] [-1],0,0,0,2 -rm[-5,-3,-1] -hsv2rgb[-1] -rm[-1]
  -endl -done -v +

compose_1530_xor :
  -e[^-1] "compose_1530 image$? two-by-two, using xor mode."
  -v - -repeat {int(@#/2)} -l[$>,{$>+1}]
    -to_colormode 0 -r[-1] [-2],0,0,0.5,0.5 -xor
  -endl -done -v +

_gimp_compose_1530 :
  -repeat {int(@#/2)} --compose_1530_$1[-2,-1] -rm[-3] -to_rgba[-1] -sh[-1] 3,3 -*[-1] $2 -rm[-1] -compose_1530_alpha[-2,-1] -mv[-1] 0 -done

_gimp_revert_layers :
  -repeat {int(@#/2)} -rv[{2*$>},{2*$>+1}] -done

gimp_compose_1530_alpha :
  -if ${2=0} -_gimp_revert_layers -endif
  -repeat {int(@#/2)}
    -to_rgba[-1] -sh[-1] 3,3 -*[-1] $1 -rm[-1]
    -compose_1530_alpha[-2,-1]
  -mv[-1] 0 -done

gimp_compose_1530_average :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 average,$1

gimp_compose_1530_colorburn :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 colorburn,$1

gimp_compose_1530_darken :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 darken,$1

gimp_compose_1530_difference :
  -if ${2=0} -_gimp_revert_layers -endif
  -to_rgb -_gimp_compose_1530 difference,$1

gimp_compose_1530_divide :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 divide,$1

gimp_compose_1530_dodge :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 dodge,$1

gimp_compose_1530_edges :
  -if ${3=0} -_gimp_revert_layers -endif
  -repeat {int(@#/2)} --compose_1530_edges[-2,-1] $2 -rm[-3] -to_rgba[-1] -sh[-1] 3,3 -*[-1] $1 -rm[-1] -compose_1530_alpha[-2,-1] -mv[-1] 0 -done

gimp_compose_1530_exclusion :
  -if ${2=0} -_gimp_revert_layers -endif
  -to_rgb -_gimp_compose_1530 exclusion,$1

gimp_compose_1530_fade :
  -if {@#==1} -return -endif
  -to_colormode 4
  -if {$1==0} [0],[0],1,1,"$10"
  -else -_gimp_compose_1530_fade$1 $7,$8,$9 -r[-1] [0],[0],1,1,3
  -endif
  -n[-1] {-(@#-2)*$3},{(@#-2)*(1+$3)}
  --[-1] {$2*(1+$3)*(@#-2)}
  -c[-1] 0,{@#-2}
  -if $6 -rv[^-1] -endif
  -if $5 -round[-1] 1
  -else -roundify[-1] $4
  -endif
  -compose_1530_fade
  -c 0,255

_gimp_compose_1530_fade1 : [0],[0],1,1,"a=$1*pi/2; x*cos(a) + y*sin(a)"
_gimp_compose_1530_fade2 : [0],[0],1,1,0 -=[-1] 1,{($1+1)*50}%,{($2+1)*50}% -distance[-1] 1
_gimp_compose_1530_fade3 : [0],[0],1,1,0 -=[-1] 1,{($1+1)*50}%,{($2+1)*50}% -distance[-1] 1 -*[-1] {0.01+$3/2} -cos[-1]
_gimp_compose_1530_fade4 : [0],[0],1,1,"((x-w*($1+0.5))*(y-h*($2+0.5)))%(0.2*w*h*(1.001+$3))"

gimp_compose_1530_freeze :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 freeze,$1

gimp_compose_1530_grainextract :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 grainextract,$1

gimp_compose_1530_grainmerge :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 grainmerge,$1

gimp_compose_1530_hardlight :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 hardlight,$1

gimp_compose_1530_hue : -skip ${2=0}
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 hue,$1

gimp_compose_1530_interpolation :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 interpolation,$1

gimp_compose_1530_lighten :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 lighten,$1

gimp_compose_1530_lightness : -skip ${2=0}
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 lightness,$1

gimp_compose_1530_luminance : -skip ${2=0}
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 luminance,$1

gimp_compose_1530_multiply :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 multiply,$1

gimp_compose_1530_negation :
  -if ${2=0} -_gimp_revert_layers -endif
  -to_rgb -_gimp_compose_1530 negation,$1

gimp_compose_1530_overlay :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 overlay,$1

gimp_compose_1530_reflect :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 reflect,$1

gimp_compose_1530_saturation : -skip ${2=0}
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 saturation,$1

gimp_compose_1530_screen :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 screen,$1

gimp_compose_1530_shapeaverage :
  -if ${3=0} -_gimp_revert_layers -endif
  -to_rgb
  -repeat {int(@#/2)}
    -rv[-2,-1]
    -if $1 -i[0] [-1] -endif
    -compose_1530_shapeaverage[-2,-1]
    -if $1 -*[0,-1] -/[0] 255 -mv[0] @# -endif
    -if $2 -to_rgba[-1] -replace_color[-1] 0,0,0,0,0,255,0,0,0,0 -endif
  -mv[-1] 0 -done

gimp_compose_1530_softlight :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 softlight,$1

gimp_compose_1530_stamp :
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 stamp,$1

gimp_compose_1530_value : -skip ${2=0}
  -if ${2=0} -_gimp_revert_layers -endif
  -_gimp_compose_1530 value,$1

gimp_compose_1530_xor :
  -if ${2=0} -_gimp_revert_layers -endif
  -to_rgb -_gimp_compose_1530 xor,$1

						################################################################
						##                                                            ##
						##            FIN  ANCIENNES FONCTIONS VERSION 1530           ##
						##     By David Tschumperle Modification samj (ajout _1530)   ##
						##                                                            ##
						################################################################





						################################################################
						##                                                            ##
						##                       Test_Noise_samj                      ##
						##                                                            ##
						################################################################

# version 1.00 2013 01 26
# version 1.01 2013 01 26 ajout itrations et sharpen
# version 1.02 2013 01 26 ajout normalize
#@gimp Test Noise : Test_Noise_samj, Test_Noise_samj(0)
#@gimp : note = note("<b>Note</b>")
#@gimp : note = note("Utiliser ce filtre sur des couleurs unies ou des textes")
#@gimp : note = note("Use this filter on patterns with solid colors or texts")
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Plasma</small></span>")
#@gimp : Alpha = float(10,0,32)
#@gimp : Beta = float(10,0,32)
#@gimp : Scale = int(2,0,8)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Bruit / Noise</small></span>")
#@gimp : Amplitude = float(40,0,200)
#@gimp : Noise type = choice("Gaussian","Uniform","Salt and pepper","Poisson")
#@gimp : Channel(s) = choice(2,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Alpha","ch-components","c-component","h-component","Red","Green","Blue","Alpha")
#@gimp : Value range = choice("Cut","Normalize")
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Sharpen</small></span>")
#@gimp : Amplitude = int(0,0,600)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Normalize</small></span>")
#@gimp : A = int(0,0,255)
#@gimp : B = int(255,0,255)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Iterations</small></span>")
#@gimp : Iterations = int(1,1,16)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs  : <i>Samj</i>.      Version : <i>2013/01/26</i>.</small>")

Test_Noise_samj :


Plasma_Alpha=$1
Plasma_Beta=$2
Plasma_Scale=$3
Noise_Amplitude=$4
Noise_Type=$5
Noise_Channel=$6
Noise_Range=$7
Sharpen_Amplitude=$8
Normalize_A=$9
Normalize_B=$10
Nb_Iterations=$11

-repeat $Nb_Iterations
	-to_rgba[-1]
	--gimp_do_nothing[-1]
	-to_rgb[-1]
	-plasma[-1] $Plasma_Alpha,$Plasma_Beta,$Plasma_Scale
	-gimp_noise[-1] $Noise_Amplitude,$Noise_Type,$Noise_Channel,$Noise_Range
	-if {$Sharpen_Amplitude>0} -sharpen[-1] $Sharpen_Amplitude -endif
	-to_gray[-1]
	-to_rgba[-1]
	-if {$Normalize_A>$Normalize_B}
		-n[-1] $Normalize_B,$Normalize_A
	-else
		-n[-1] $Normalize_A,$Normalize_B
	-endif
	-gimp_compose_1530_lightness[-1,-2] 1,1
-done

						################################################################
						##                                                            ##
						##                    FIN  Test_Noise_samj                    ##
						##                                                            ##
						################################################################


						################################################################
						##                                                            ##
						##                      Test_Dilate_samj                      ##
						##                                                            ##
						################################################################


# version 1.00 2013 01 31
#@gimp Test Dilate : Test_Dilate_samj, Test_Dilate_samj(0)
#@gimp : note = note("<b>Note</b>")
#@gimp : note = note("Utiliser ce filtre sur des traits, des lignes... sur images avec fond transparent")
#@gimp : note = note("Use this filter on strokes, lines... on images with transparent background")
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Dilate</small></span>")
#@gimp : Taille/Size = int(1,0,64)
#@gimp : Type = choice(0,"Circular Dilation","Octagonal Dilation","Rectangular Dilatation")
#@gimp : Boost = int(0,0,64)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Iterations</small></span>")
#@gimp : Iterations = int(1,1,16)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Deformation</small></span>")
#@gimp : Amplitude = float(0,0,32)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Flou/Blur</small></span>")
#@gimp : Amplitude = float(0,0,32)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Spread</small></span>")
#@gimp : Amplitude = float(0,0,32)
#@gimp : sep = separator(), note = note("<span foreground="orangered"><small>Normalize Local</small></span>")
#@gimp : Normalize Local = bool(0)
#@gimp : Amplitude = int(1,1,64)
#@gimp : Rayon/Radius = int(1,1,64)
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs  : <i>Samj</i>.      Version : <i>2013/01/31</i>.</small>")

Test_Dilate_samj :


Taille_Size=$1
Type_Dilate=$2
Boost=$3
Iterations=$4
Amplitude_Deformation=$5
Amplitude_Blur=$6
Amplitude_Spread=$7
Valider_Normalize=$8
Normalize_Amplitude=$9
Normalize_Rayon=$10

-repeat $Iterations
	-if {$Boost>0}
		-repeat $Boost
			-blur[-1] 1
			-dilate_circ[-1] 1
		-done
		-sharpen[-1] {$Boost*10}
	-endif

	-if {$Taille_Size>0}
		-if {$Type_Dilate==0} -dilate_circ[-1] $Taille_Size -endif
		-if {$Type_Dilate==1} -dilate_oct[-1] $Taille_Size -endif
		-if {$Type_Dilate==2} -dilate[-1] $Taille_Size -endif	
	-endif
-done

-deform[-1] $Amplitude_Deformation
-blur[-1] $Amplitude_Blur
-spread[-1] $Amplitude_Spread
-if {$Valider_Normalize==1}
	-normalize_local[-1] $Normalize_Amplitude,$Normalize_Rayon
-endif
-if {$Boost>0}
	-sharpen[-1] 100
-endif


						################################################################
						##                                                            ##
						##                   FIN  Test_Dilate_samj                    ##
						##                                                            ##
						################################################################



						################################################################
						##                                                            ##
						##                    Test_Rapidite_samj                      ##
						##                                                            ##
						################################################################


# Tester la rapidit des compilations
#@gimp Test rapidite compilation : Test_Rapidite_samj, Test_Rapidite_samj
#@gimp : note = note("Test compilation")
#@gimp : sep = separator()
#@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical")
#@gimp : sep = separator(), note = note("<small>Auteurs / Authors : <i>Samj</i>.      Latest update : <i>2013/03/15</i>.</small>")

Test_Rapidite_samj :
temps_origine=@|
demo=0
temps_demo=0

-to_rgba[-1]
-fill_color[-1] 255,255,255,255
-gimp_chessboard[-1] 32,32,0,0,0,1,0,0,0,255,255,255,255,255
-kuwahara[-1] 5
-gimp_anisotropic_smoothing[-1] 60,0.7,0.3,0.6,1.1,0.8,30,2,0,1,1,0,1
-gimp_blur_linear[-1] 10,0.5,0,0,1,0,0

temps_fin=@|
temps_demo={$temps_fin-$temps_origine}
-text_outline[-1] $temps_demo,10,10,64,1,1,255,255,255


						################################################################
						##                                                            ##
						##                 FIN  Test_Rapidite_samj                    ##
						##                                                            ##
						################################################################













#@gimp _