Page 2 sur 3

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 17:28
par Micoute
Il y avait juste à demander ! C'est trop de la balle, comme disaient mes enfants quand ils étaient marmots !

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 18:06
par SPH
Dobro a écrit :bon en principe j'ai resouds le probleme
2 problemes avec ton nouveau code :

1> Un clic sur le cadre noir et on a une erreur
2> Il manque (je crois tout du moins) 2 couleurs a ta super palette : le noir et le blanc pur

PS : d'ailleurs, a propos du point 2, tu n'as que 254*254 couleurs au lieu de 256*256*256
Je me demande ou sont passé les autres couleurs.
Mais pour rester en 16 bits de couleurs, il te faut 256*256 couleurs

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 20:39
par Ar-S
@SPH - Ligne 52
Remplacer

Code : Tout sélectionner

        	 couleur = Point(x1,y1)
par

Code : Tout sélectionner

         If x1 >= 0 and y1 => 0
        	 couleur = Point(x1,y1)
         EndIf

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 20:58
par SPH
Ar-S a écrit :@SPH - Ligne 52
Remplacer

Code : Tout sélectionner

        	 couleur = Point(x1,y1)
par

Code : Tout sélectionner

         If x1 >= 0 Or y1 => 0
        	 couleur = Point(x1,y1)
         EndIf
Oui, je sais ou est le probleme. Mais ce n'est pas un Or mais un And :wink:

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 21:12
par Ar-S
Anéféé :mrgreen: corrigé

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 21:22
par Backup
Merci pour la correction

je suis revenu a l'ancien systeme d'affichage de couleurs a l'aide de GradientColor() voir l'exemple ....


ya un truc qui merdoie avec "box(xc+1, 0, xc+1,haut) "

ça devrai donner des lignes verticale de 1 pixel .. ce n'est pas le cas !

si je fais
XC=100
box(xc, 0, xc,haut)

dans la procedure :

Code : Tout sélectionner

Procedure Palette_gadget(num,x,y,cadre);Palette_gadget(numero du gadget,x,y,largeur,hauteur)
	; By Dobro
	; Affiche le Gadget Palette
	Larg=256 :haut=256
	
	if cadre=1
		FrameGadget(#PB_Any, x-5, y-15, Larg+15, Haut+20, "Palette By Dobro")
		
		
	Endif
	CanvasGadget(num, x,y,larg,haut)
	If StartDrawing(CanvasOutput(num)) 
		;{ ancien system by Dobro
		DrawingMode(#PB_2DDrawing_Gradient)      
		BackColor( rgb(0,0,0)) ; de Noir a
		;for xc=0 to 255 
		xc=100
			GradientColor(0.2, rgb(xc,0,0)) ; rouge , de rouge a :
			GradientColor(0.3, rgb(xc,0,xc)) ;violet , de Violet a :
			GradientColor(0.4, rgb(0,0,xc)) ; bleu , de bleu a :
			GradientColor(0.5, rgb(0,xc,xc)) ; cyan ,de Cyan a :
			GradientColor(0.6, rgb(0,xc,0));vert ,de Vert a :
			GradientColor(0.7, rgb(xc,xc,0));jaune , de Jaune a:
			GradientColor(0.8,rgb(xc,xc,xc));blanc
			LinearGradient(0, 0, 0, Haut)    
			box(xc, 0, xc,haut)   
		;next xc
		;}
		StopDrawing()
		
	EndIf
Endprocedure

voila ce que j'obtiens, au lieu d'une ligne verticale de 1 pixel en colonne 100
Image

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 22:12
par Backup
c'est bon !! j'ai pu avoir la couleur 255,255,255

mon canvas n'etais pas assez grand :roll:

mais cela ne resoud pas le probleme avec

XC=100
box(xc, 0, xc,haut)

mais on s'en fout c'est un detail :)

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 22:33
par SPH
Le code du post 1 est corrigé ?
Si oui, il y a un enorme probleme de couleurs. Je vais me pencher demain la dessus; ca m'interesse de voir comment tu as fait.
Si non, peut tu poster ton code corrigé ?

Thx :)

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 22:46
par Backup
voila :) (premier code page 1 )

pour une raison obscure, il semble que la souris n'est pas capturé par le canvas
si on pointe en haut a gauche ......

donc pas de couleur (0,0,0) pourtant elle y est !

alors que en bas a droite le RGB(255,255,255) s'affiche

ps; j'ai remis la capture sur mouvement de la souris , j'ai borné, normalement ça doit plus planter sur le point()

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 22:54
par SPH
A vue d'oeil bio-ionique, il manque de nombreuses couleurs !!! (Tu as pleins de doublons, de triplons,etc...)

La, je suis foncdé par les medocs mais demain, je m'y penche serieusement... 8)

a+

Re: un Gadget Palette ....un ...

Publié : mer. 18/juin/2014 22:56
par Backup
ps2 : il n'y a pas specialement de probleme lié a la couleur

si tu compare avec la palette prise en photo de GallyHC tu va trouver une difference
car lui change la luminosité de l'ensemble de la palette par le curseur a droite
alors que moi je cherche a afficher toutes les couleurs sur la surface

les teintes de haut en bas
la luminosité de gauche a droite

donc forcement ça n'affiche pas la meme palette :)

de toutes façon le probleme du box doit generer une erreur quelque part !

promene le curseur, pas 2 fois la meme teintes chez moi

Re: un Gadget Palette ....un ...

Publié : jeu. 19/juin/2014 6:25
par SPH
Dobro a écrit :promene le curseur, pas 2 fois la meme teintes chez moi
BEAUCOUP de teintes identiques (du moins dans les noirs et blancs)
Ta palette d'avant etait beaucoup mieux ! (redonne la plz)

Re: un Gadget Palette ....un ...

Publié : jeu. 19/juin/2014 15:19
par Backup
quelques petits changements ..
j'ai remis le code de Graph100 (mais j'ai aussi mis le miens en Rem )

ajout d'un box pour le control de la couleur choisi
un petit changement dans la procedure d'event ..

ajout d'un Box pour la couleur noir , qui pour une raison qui m'echappe ne peut se choisir dans la palette !

Re: un Gadget Palette ....un ...

Publié : jeu. 19/juin/2014 15:56
par Ar-S
J'ai repris ta procedure event_palette_gadget(num) pour d'une part, afficher la couleur survolée à la volée et d'autre part pour partager l'aperçu de la couleur sélectionnée au clic en scindant ta box. C'est bien plus intuitif ainsi je trouve.

Code : Tout sélectionner

Procedure.l event_palette_gadget(num) ; event_palette_gadget(numero du gadget)
   ;By Dobro modif d'Ar-S
   ; retourne la couleur choisie
   Select EventType()
   		Case #PB_EventType_MouseEnter, #PB_EventType_MouseMove
		     Capture = 1
	    	x1 = GetGadgetAttribute(num, #PB_Canvas_MouseX)
     	 	y1 = GetGadgetAttribute(num, #PB_Canvas_MouseY)
		      If StartDrawing(CanvasOutput(num))
		         If (x1 >= 0 And x1 <=255)  And (y1 >=0 And y1 <=275)
		            couleur = Point(x1,y1)
		            Box (257,0,20,128,couleur)
		            
		         EndIf
		         StopDrawing()
		         ProcedureReturn couleur
	         EndIf
		     
		Case  #PB_EventType_LeftClick
			Capture = 0
			x1 = GetGadgetAttribute(num, #PB_Canvas_MouseX)
     	 	y1 = GetGadgetAttribute(num, #PB_Canvas_MouseY)
		      If StartDrawing(CanvasOutput(num))
		         If (x1 >= 0 And x1 <=255)  And (y1 >=0 And y1 <=275)
		            couleur = Point(x1,y1)
		            Box (257,129,20,128,couleur)
		            
		         EndIf
		         StopDrawing()
		         ProcedureReturn couleur
	         EndIf
	         
	     Default
		     Capture = 0
		         
	EndSelect  
   

   ProcedureReturn -1
EndProcedure

Re: un Gadget Palette ....un ...

Publié : jeu. 19/juin/2014 16:38
par Backup
bonne idée , j'adopte :)