FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Pourquoi le compilateur stagne
par papydall Hier à 23:23

» Immortaliser les photos de famille
par jjn4 Hier à 18:29

» Concours de Morpions
par jjn4 Hier à 18:11

» Compilateur FBPano
par jean_debord Hier à 10:12

» Tout est tranquille
par Jean Claude Ven 22 Sep 2017 - 21:41

» Texte en gif animé
par JL35 Ven 22 Sep 2017 - 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Outils couleurs

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4  Suivant
AuteurMessage
papydall

avatar

Nombre de messages : 5533
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Outils couleurs   Sam 20 Mai 2017 - 19:16

Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5019
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Outils couleurs   Sam 20 Mai 2017 - 20:01

Toujours aussi impitoyable ! Notre Papydall Very Happy

Mais bon, on doit faire avec notre nouvel œil de lynx. Very Happy

ATTENTION: Maintenant il a deux yeux. On va devoir être vigilants.

lol!

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 20 Mai 2017 - 20:59

Bon, pour en revenir à nos moutons ( oui chez moi c' est la ferme Laughing ).



Voilà l' outils intégré dans mon futur éditeur "Tout Panoramic" que j' ai nommé Basic Editor.
Ouais, je sais mais je commence à être à cours de nom (PPE, PANEDIT, Simple Editor,....).
Bref, en cliquant sur le bouton avec le petit crayon, la couleur sera insérée dans le code du source
actif à l' emplacement du caret dans le format choisi (RGB,HTML,KGF).
Le résultat est, en attendant que Jack nous permette d' insérer du texte par programme dans objet SYNEDIT,
dans la fenêtre de message. D' où mes suggestions il y a quelques jours...

Voilà, ce sera tout pour le moment...
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5019
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Outils couleurs   Sam 20 Mai 2017 - 21:56

Citation :
en attendant que Jack nous permette d' insérer du texte par programme dans objet SYNEDIT,

c'est indispensable !

Pour les noms d'éditeur: SimpleEditor, c’était bien ! j'espère que tu restes sur la même optique (la simplicité).

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 20 Mai 2017 - 22:03

@ Jean Claude,

PPE étaient au départ basé sur une orientation Projet et à ses tout début sur un RichEdit avec un algorithme maison
pour la reconnaissance syntaxique.
PANEDIT un embryon de...il n' a pas survécu... Laughing
SimpleEditor Est avec une énorme partie de KGF.dll

La Basic Editor est prévu pour être en tout Panoramic.
J' espère seulement que son évolution ne sera pas trop lente.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Outils couleurs   Sam 20 Mai 2017 - 22:56

Bien bien bien Yannick ! Je vois que tout cela se met en place progressivement...

PS :
Content de te retrouver parmi nous Papydall. C'est vrai qu'on commençait à s’inquiéter.
Bonne lecture sur le forum avec tes 'nouveaux yeux'. Laughing Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5533
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 2:01

Merci tout le monde.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 21 Mai 2017 - 4:29

J' ai voulu ajouté une barre de luminosité mais je crois que j' ai un souci dans les conversions... Embarassed

Voilà le source :
Code source:
 

Si un pro des couleurs veut y jeter un oeil...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 465
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 12:28

Pour ma palette, j'ai utilisé un convertisseur pour déboguer mon algorithme, je rentrais des valeurs et je regardais si mon calcul donnait la même chose. Mon pb venait des mod(), il fallait que je mette un int() devant! C'est peut être pareil pour toi...
Je n'utilise pas la même palette que toi, je ne peux donc pas vraiment t'aider, mais j'ai trouvé ton algorithme ici:
LIEN
Il y a un convertisseur tout en bas, sert t'en pour déboguer Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 21 Mai 2017 - 15:38

@ Silverman,

C' est de cette page que je suis parti pour mes conversions.
Le truc, c' est que je ne suis pas allé jusqu' en bas de la page et je n' avais pas vu le convertisseur. Embarassed

Quand tu dis mettre un in() devant les mod() est ce que tu entends ceci : int(mod()) ?
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc37



Nombre de messages : 447
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 16:00

Bonjour à tous !

@Yanninck :
Je viens de tester ton programme.
Merci de ton partage. cheers

Avant d’aller plus loin, je voulais te dire que j’ai un problème de rafraîchissement de la couleur lors du survol de la palette avec la souris : le temps de calcul est trop long pour le PC que j’utilise actuellement :


Parfois, la couleur affichée ne correspond pas à celle sous la souris Crying or Very sad
Si je mets en REM la ligne 218 : ColorPictTSVpalette(R%,G%,B%), plus de problème, tout va bien, mais, plus de barre de luminosité !
Pardonne-moi de ces remarques, je ne souhaite pas te décourager dans ton entreprise.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 16:36

Bonjour Marc37

Citation :
le temps de calcul est trop long pour le PC que j’utilise actuellement

Oui, moi aussi j'ai remarqué le problème et effectivement c'est apparu depuis la dernière version avec la barre de luminosité.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc37



Nombre de messages : 447
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 16:50

Salut Laurent !

@yannick :

Aie !
Lorsque tu as R=242, V=251, B=4, on obtient :

T = -1466,66 au lieu de 60
S  = 3,58 au lieu de 97

Bref, une erreur dans la sub RGBtoTSL.

Je vais voir ça un peu plus tard.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: RE   Dim 21 Mai 2017 - 17:14

Mouep, visiblement y a un truc que j' ai pas pigé.

Est ce que mod() est le même que le Mod() de panoramic 
Est ce que |1,2| veut bien dire entre 1 et 2

Je ne suis pas trop sûr, le résultat est approchant mais pas exact donc faux.
Ils sont beau ces scientifiques avec leurs hiéroglyphes... Mad 

J' aurai du mettre ce morceau dans la rubrique "SOS" mais bon je voulais que cela reste
sur ce sujet pour ne pas trop me disperser sur le forum.

Désolé... Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc37



Nombre de messages : 447
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 17:23

@Yannick :

ligne 366 :   if Mn1% = R% : Mn% = Max(R%,B%) : else : Mn% = Max(V%,B%) : end_if

Ne serait-ce pas plutôt :

ligne 366 :   if Mn1% = R% : Mn% = Min(R%,B%) : else : Mn% = Min(V%,B%) : end_if

? ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc37



Nombre de messages : 447
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 17:34

Je viens de faire l'essais :

Suite à ma correction ci-dessus, ligne 366, la valeur Mn% est maintenant correcte.
Elle reprend bien la valeur minimum de R,V et B.

Du coup la variable locale c% est bonne.

A suivre... il reste un bug plus loin...


Dernière édition par Marc37 le Dim 21 Mai 2017 - 17:36, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 21 Mai 2017 - 17:35

@ Marc 37,

SI JE LE POUVAIS, JE T EMBRASSERAI !!!!

Je crois que tu viens de mettre le doigt dessus.
Embarassed Embarassed Embarassed Le copier/coller, encore lui.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 21 Mai 2017 - 17:45

Avec ce code là, c' est pas parfait mais cela va mieux :

Code:
dim no%,i%
dim r%,g%,b%
dim EtatStandByPalette%
dim ColPerso%(16)
      
dim FenPaletteCouleur% : no%=no%+1 : FenPaletteCouleur%=no%
dim ContPalette%       : no%=no%+1 : ContPalette%=no%
dim PictPalWindows%(48): for i%=1 to 48 : no%=no%+1 : PictPalWindows%(i%)=no% : next i%
dim AlphPalette%(2)    : for i%=1 to 2  : no%=no%+1 : AlphPalette%(i%)=no%    : next i%
dim PictPalPerso%(16)  : for i%=1 to 16 : no%=no%+1 : PictPalPerso%(i%)=no%   : next i%
dim PictPalette%       : no%=no%+1 : PictPalette%=no%
dim PictChxPalette%    : no%=no%+1 : PictChxPalette%=no%
dim SpnPalette%(3)     : for i%=1 to 3  : no%=no%+1 : SpnPalette%(i%)=no%     : next i%
dim AlphPalConvert%(3) : for i%=1 to 3  : no%=no%+1 : AlphPalConvert%(i%)=no% : next i%
dim PictTSVpalette%    : no%=no%+1 : PictTSVpalette%=no%

label MouseMoveCadre
label MouseMovePalette
label ClicBtn
label ClicPalWindows
label ClicPalPerso
label DClicPictChxPalette
label DClicPalPerso
label Change
 
button 9999
top 9999,10
left 9999,10
caption 9999,"Outils couleurs"
on_click 9999,ClicBtn
end

sub FormPalette()
   dim_local i%,l%,t%,x%,y%,V$
  
   if object_exists(FenPaletteCouleur%)=1
      show FenPaletteCouleur%
   else
      create_hide
      form FenPaletteCouleur%
      border_small FenPaletteCouleur%
      height FenPaletteCouleur%,305
      width FenPaletteCouleur%,450
      top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2
      left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2
      caption FenPaletteCouleur%,"Outils couleurs"
      
      font_name FenPaletteCouleur%,"Arial"
      font_size FenPaletteCouleur%,8
      font_color FenPaletteCouleur%,85,85,127
      
      container ContPalette%
      parent ContPalette%,FenPaletteCouleur%
      height ContPalette%,height_client(FenPaletteCouleur%)-5
      width ContPalette%,width_client(FenPaletteCouleur%)-10
      top ContPalette%,0
      left ContPalette%,5
      on_mouse_move ContPalette%,MouseMoveCadre
      
      alpha AlphPalette%(1)
      parent AlphPalette%(1),ContPalette%
      top AlphPalette%(1),15
      left AlphPalette%(1),5
      caption AlphPalette%(1),"Couleurs Windows :"
      
      l%=5      
      for x%=1 to 8
         t%=top(AlphPalette%(1))+height(AlphPalette%(1))+5      
         for y%=1 to 6
            i%=i%+1            
            picture PictPalWindows%(i%)
            parent PictPalWindows%(i%),ContPalette%
            height PictPalWindows%(i%),20
            width PictPalWindows%(i%),20
            top PictPalWindows%(i%),t%
            left PictPalWindows%(i%),l%
            read V$
            color PictPalWindows%(i%),hex(mid$(v$,1,2)),hex(mid$(v$,3,2)),hex(mid$(v$,5,2))
            cursor_point PictPalWindows%(i%)
            on_click PictPalWindows%(i%),ClicPalWindows
            t%=t%+25              
         next y%
         l%=l%+25  
      next x%
      
      alpha AlphPalette%(2)
      parent AlphPalette%(2),ContPalette%
      top AlphPalette%(2),top(PictpalWindows%(48))+height(PictpalWindows%(48))+10
      left AlphPalette%(2),5
      caption AlphPalette%(2),"Couleurs Personnalisées :"      

      l%=5
      i%=0      
      for x%=1 to 8
         t%=top(AlphPalette%(2))+height(AlphPalette%(2))+5      
         for y%=1 to 2
            i%=i%+1            
            picture PictPalPerso%(i%)
            parent PictPalPerso%(i%),ContPalette%
            height PictPalPerso%(i%),20
            width PictPalPerso%(i%),20
            top PictPalPerso%(i%),t%
            left PictPalPerso%(i%),l%
            color PictPalPerso%(i%),0,0,0
            cursor_point PictPalPerso%(i%)
            hint PictPalPerso%(i%),"Clic pour sélectionner"+chr$(13)+"Double clic pour effacer"
            on_click PictPalPerso%(i%),ClicPalPerso
            on_double_click PictPalPerso%(i%),DClicPalPerso
            t%=t%+25              
         next y%
         l%=l%+25  
      next x%

      picture PictPalette%
      parent PictPalette%,ContPalette%
      height PictPalette%,128
      width PictPalette%,158
      top PictPalette%,top(AlphPalette%(1))+height(AlphPalette%(1))+5
      left PictPalette%,left(PictPalWindows%(48))+width(PictPalWindows%(48))+30
      file_load PictPalette%,"palette.bmp"
      cursor_cross PictPalette%
      on_mouse_move PictPalette%,MouseMovePalette
      on_click PictPalette%,ClicBtn
  
      picture PictTSVpalette%
      parent PictTSVpalette%,ContPalette%
      height PictTSVpalette%,128
      width PictTSVpalette%,15
      top PictTSVpalette%,top(PictPalette%)
      left PictTSVpalette%,left(PictPalette%)+width(PictPalette%)+5
      ColorPictTSVpalette(0,0,0)
        
      picture PictChxPalette%
      parent PictChxPalette%,ContPalette%
      height PictChxPalette%,22
      width PictChxPalette%,22
      top PictChxPalette%,top(PictPalette%)+height(PictPalette%)+5
      left PictChxPalette%,left(PictPalette%)
      color PictChxPalette%,0,0,0
      cursor_point PictChxPalette%
      hint PictChxPalette%,"Cliquer pour convertir"+chr$(13)+"Double clic pour sauvegarder dans les couleurs personnalisées"
      on_click PictChxPalette%,ClicBtn
      on_double_click PictChxPalette%,DClicPictChxPalette
      
      t%=top(PictChxPalette%)
      l%=left(PictChxPalette%)+width(PictChxPalette%)+5
      for i%=1 to 3
         spin SpnPalette%(i%)
         parent SpnPalette%(i%),ContPalette%
         width SpnPalette%(i%),45
         top SpnPalette%(i%),t%
         left SpnPalette%(i%),l%
         l%=l%+width(SpnPalette%(i%))+5
         font_color SpnPalette%(i%),255,255,255
         min SpnPalette%(i%),0
         max SpnPalette%(i%),255            
      next i%
      color SpnPalette%(1),255,0,0
      color SpnPalette%(2),0,180,0
      color SpnPalette%(3),0,0,255
      
      alpha AlphPalConvert%(1)
      parent AlphPalConvert%(1),ContPalette%
      caption AlphPalConvert%(1),"RGB => "
      top AlphPalConvert%(1),top(SpnPalette%(1))+height(SpnPalette%(1))+10
      left AlphPalConvert%(1),left(PictChxPalette%)
      
      alpha AlphPalConvert%(2)
      parent AlphPalConvert%(2),ContPalette%
      caption AlphPalConvert%(2),"HTML => "
      top AlphPalConvert%(2),top(AlphPalConvert%(1))+height(AlphPalConvert%(1))+5
      left AlphPalConvert%(2),left(PictChxPalette%)
      
      alpha AlphPalConvert%(3)
      parent AlphPalConvert%(3),ContPalette%
      caption AlphPalConvert%(3),"KGF => "
      top AlphPalConvert%(3),top(AlphPalConvert%(2))+height(AlphPalConvert%(2))+5
      left AlphPalConvert%(3),left(PictChxPalette%)
      create_show
      top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2
      left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2
      show_all  
   end_if
  
   for i%=1 to 16
      if ColPerso%(i%)<>0
         r%= bin_and(ColPerso%(i%),255)
         g%= bin_and(int(ColPerso%(i%)/256),255)
         b%= bin_and(int(ColPerso%(i%)/(256*256)),255)
         color PictPalPerso%(i%),r%,g%,b%
      end_if
   next i%
end_sub

Change:
   if number_change>(SpnPalette%(1)-1) and number_change<(SpnPalette%(3)+1)
      if position(number_change)>255 or position(number_change)<0
         message "Valeur incorrecte !"+chr$(13)+"Valeur de 0 et 255"
         position number_change,255
         return
      end_if
      color PictChxPalette%,position(SpnPalette%(1)),position(SpnPalette%(2)),position(SpnPalette%(3))
      return
   end_if
return

MouseMovePalette:
   off_mouse_move PictPalette%
      if mouse_x_position(PictPalette%)<0 or mouse_y_position(PictPalette%)<0
     return
  end_if
      if object_exists(SpnPalette%(1))=1 : off_change SpnPalette%(1) : end_if
      if object_exists(SpnPalette%(2))=1 : off_change SpnPalette%(2) : end_if
      if object_exists(SpnPalette%(3))=1 : off_change SpnPalette%(3) : end_if
      r%=color_pixel_red(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%))
      g%=color_pixel_green(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%))
      b%=color_pixel_blue(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%))
  ColorPictTSVpalette(R%,G%,B%)
      color PictChxPalette%,r%,g%,b%
      position SpnPalette%(1),r%
      position SpnPalette%(2),g%
      position SpnPalette%(3),b%
   on_mouse_move PictPalette%,MouseMovePalette  
return

MouseMoveCadre:
   if object_exists(SpnPalette%(1))=1 : on_change SpnPalette%(1),Change : end_if
   if object_exists(SpnPalette%(2))=1 : on_change SpnPalette%(2),Change : end_if
   if object_exists(SpnPalette%(3))=1 : on_change SpnPalette%(3),Change : end_if
return

ClicBtn:
   if number_click = 9999
      FormPalette()
      return
   end_if
   if number_click = PictPalette%
      if EtatStandByPalette%=0
         EtatStandByPalette%=1
         off_mouse_move PictPalette%
         cursor_default PictPalette%
      else
         EtatStandByPalette%=0
         on_mouse_move PictPalette%,MouseMovePalette
         cursor_cross PictPalette%      
      end_if
      return
   end_if
   if number_click = PictChxPalette%
      r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
      g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
      b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
      ConvertChxPalette(r%,g%,b%)
      return
   end_if
return

DClicPictChxPalette:
   r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
   g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
   b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
   SaveColorPerso(r%,g%,b%)
return

sub SaveColorPerso(r1%,g1%,b1%)
   dim_local i%
  
   for i%=1 to 16
       if ColPerso%(i%)=0
          ColPerso%(i%)=(b1%*256+g1%)*256+r1%
          color PictPalPerso%(i%),r1%,g1%,b1%
          exit_for
       end_if
   next i%
end_sub

ClicPalWindows:
   off_change SpnPalette%(1)
   off_change SpnPalette%(2)
   off_change SpnPalette%(3)
   r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
   g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
   b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
   ColorPictTSVpalette(R%,G%,B%)
   color PictChxPalette%,r%,g%,b%
   position SpnPalette%(1),r%
   position SpnPalette%(2),g%
   position SpnPalette%(3),b%  
return

ClicPalPerso:
   if mouse_left_down(number_click)=1
      off_change SpnPalette%(1)
      off_change SpnPalette%(2)
      off_change SpnPalette%(3)
      r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
      g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
      b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
  ColorPictTSVpalette(R%,G%,B%)
      color PictChxPalette%,r%,g%,b%
      position SpnPalette%(1),r%
      position SpnPalette%(2),g%
      position SpnPalette%(3),b%
   else
      message "Raté !!"
   end_if
return

DClicPalPerso:
   color number_double_click,0,0,0
   InitColPerso()
return

sub InitColPerso()
   dim_local i%
  
   for i%=1 to 16
      if number_double_click = PictPalPerso%(i%)
      ColPerso%(i%)=0
      end_if
   next i%
end_sub

sub ConvertChxPalette(R1%,G1%,B1%)
   dim_local RH$,GH$,BH$,KGFc$
    
   RH$ = Hex$(R1%) : if R1% < 16 then RH$ = "0" + RH$
   GH$ = Hex$(G1%) : if G1% < 16 then GH$ = "0" + GH$
   BH$ = Hex$(B1%) : if B1% < 16 then BH$ = "0" + BH$
  
   KGFc$ = str$((B1%*256+G1%)*256+R1%)
   caption AlphPalConvert%(1),"RGB  => "+str$(R1%)+","+str$(G1%)+","+str$(B1%)
   caption AlphPalConvert%(2),"HTML => "+RH$+GH$+BH$
   caption AlphPalConvert%(3),"KGF  => "+KGFc$      
end_sub

sub ColorPictTSVpalette(R1%,V1%,B1%)
   dim_local i%,T,S,L,R%,V%,B%,x%

   R%=R1% : V%=V1% : B%=B1%  
   RGBtoTSL(R%,V%,B%)
   T=TSL_T : S=TSL_S
   cls
   2d_target_is PictTSVpalette%
   for i%=1 to 127
      TSLtoRGB(T,S,i%)      
  if RGB_R%>-1 and RGB_G%>-1 and RGB_B%>-1
     if RGB_R%<256 and RGB_G%<256 and RGB_B%<256
               2d_pen_color RGB_R%,RGB_G%,RGB_B%
               2d_line 1,i%,15,i%
             end_if
  end_if
   next i%

end_sub

sub RGBtoTSL(R%,V%,B%)
   dim_local i%,Mx%,Mx1%,Mn%,Mn1%,C%
  
   if variable("TSL_T")=0 then dim TSL_T
   if variable("TSL_S")=0 then dim TSL_S
   if variable("TSL_L")=0 then dim TSL_L
  
   Mx1% = Max(R%,V%)
   if Mx1% = R% : Mx% = Max(R%,B%) : else : Mx% = Max(V%,B%) : end_if
   Mn1% = Min(R%,V%)
   if Mn1% = R% : Mn% = Min(R%,B%) : else : Mn% = Min(V%,B%) : end_if
   C% = Mx%-Mn%  
   if Mx% = R%
      if C%>0 : TSL_T = 60*mod(int(((V%-B%)/C%)),6) : else : TSL_T = 60*mod((V%-B%),6) : end_if
   else
      if Mx% = V%
         if C%>0 : TSL_T = 60*(((B%-R%)/C%)+2) : else : TSL_T = 60*((B%-R%)+2) : end_if
      else
         if C%>0 : TSL_T = 60*(((R%-V%)/C%)+4) : else : TSL_T = 60*((R%-V%)+4)  : end_if
      end_if
   end_if  
   if C%>0  : TSL_S = 100*(C%/Mx%) : else : TSL_S = 0 : end_if
   if Mx%>0 : TSL_L = 100*(Mx%/255): else : TSL_L = 0 : end_if
end_sub

sub TSLtoRGB(T,S,L)
    dim_local i,Mx,Mm,C,X

   if variable("RGB_R%")=0 then dim RGB_R%
   if variable("RGB_G%")=0 then dim RGB_G%
   if variable("RGB_B%")=0 then dim RGB_B%
 
 Mx = L*255/100
 Mm = (100-S)*L*(255/10000)
 C = Mx-Mm
 i = T/60
 X = C*mod(i,2)  
 if i<1
   RGB_R% = int(C+Mm)
   RGB_G% = int(X+Mm)
   RGB_B% = int(Mm)
 else
   if i>0.99 and i<2
      RGB_R% = int(X+Mm)
      RGB_G% = int(C+Mm)
      RGB_B% = int(Mm)  
       else
      if i>1.99 and i<3
         RGB_R% = int(Mm)
         RGB_G% = int(C+Mm)
         RGB_B% = int(X+Mm)  
  else
     if i>2.99 and i<4
            RGB_R% = int(Mm)
            RGB_G% = int(X+Mm)
            RGB_B% = int(C+Mm)
 else
    if i>3.99 and i<5
               RGB_R% = int(X+Mm)
               RGB_G% = int(Mm)
               RGB_B% = int(C+Mm)
 else
               RGB_R% = int(C+Mm)
               RGB_G% = int(Mm)
               RGB_B% = int(X+Mm)
 end_if
 end_if
  end_if
       end_if  
 end_if
end_sub

DATA "FF8080","FFFF80","80FF80","00FF80","80FFFF","0080FF","FF80C0","FF80FF"
DATA "FF0000","FFFF00","80FF00","00FF40","00FFFF","0080C0","8080C0","FF00FF"
DATA "804040","FF8040","00FF00","008080","004080","8080FF","800040","FF0080"
DATA "800000","FF8000","008000","008040","0000FF","0000A0","800080","8000FF"
DATA "400000","804000","004000","004040","000080","000040","400040","400080"
DATA "000000","808000","808040","808080","408080","C0C0C0","400040","FFFFFF"

Laughing


Dernière édition par Yannick le Dim 21 Mai 2017 - 18:34, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc37



Nombre de messages : 447
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 17:58

@Yannick

La TSVpalette fait 128 de haut.

Or, les valeurs à afficher vont de 0 à 100 => L = 0 à 100% de luminosité.

Je lis aussi que tu fais une boucle d'affichage (ligne 345) de 1 à 127...
Il y a donc 27 pas en trop. 100 est le maxi.

Je ne sais pas si je suis bien clair dans mon explication... Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 21 Mai 2017 - 18:02

Si Si tu es très clair L est en % donc 0 à 100 et la boucle va de 1 à 127.

Je suis en train de corriger.
la bande de luminosité sera seulement sur les clics de sélection cela diminuera les pbs de mise à jour
de cette barre dus à la vitesse.

Merci Marc 37
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc37



Nombre de messages : 447
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 18:28

Avant que Oeil_de_Lynx ne le voit ( Bonjour Papydall !  Very Happy )

Ligne 198
message "Valeur incorrecte !"+chr$(13)+"Valeur de 0 à 255"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: RE   Dim 21 Mai 2017 - 18:31

Oupss... je vais corriger tout de suite!
lol!
C' est fait il a rien vu...  Shocked
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc37



Nombre de messages : 447
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 18:44

Euh.... Sabotage ! ?  Smile

Ligne 370
    if C%>0 : TSL_T = 60*mod(int(((V%-B%)/C%)),6) : else : TSL_T = 60*mod((V%-B%),6) : end_if

Ne pas mettre de INT !  Mad

Correction :
if C%>0 : TSL_T = 60*mod(((V%-B%)/C%),6) : else : TSL_T = 60*mod((V%-B%),6) : end_if
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7992
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 21 Mai 2017 - 18:51

Bien vu Marc 37 !

Un résidu d' essai... Mad

Voilà le code modifié
L' affichage de la barre se fait sur les clics ( Couleurs windows, Couleurs personnalisées et palette )
certaines couleurs n' affichent rien, d' autres des résultats bizarres  Suspect

voilà le source :
Code:
dim no%,i%
dim r%,g%,b%
dim EtatStandByPalette%
dim ColPerso%(16)
      
dim FenPaletteCouleur% : no%=no%+1 : FenPaletteCouleur%=no%
dim ContPalette%       : no%=no%+1 : ContPalette%=no%
dim PictPalWindows%(48): for i%=1 to 48 : no%=no%+1 : PictPalWindows%(i%)=no% : next i%
dim AlphPalette%(2)    : for i%=1 to 2  : no%=no%+1 : AlphPalette%(i%)=no%    : next i%
dim PictPalPerso%(16)  : for i%=1 to 16 : no%=no%+1 : PictPalPerso%(i%)=no%   : next i%
dim PictPalette%       : no%=no%+1 : PictPalette%=no%
dim PictChxPalette%    : no%=no%+1 : PictChxPalette%=no%
dim SpnPalette%(3)     : for i%=1 to 3  : no%=no%+1 : SpnPalette%(i%)=no%     : next i%
dim AlphPalConvert%(3) : for i%=1 to 3  : no%=no%+1 : AlphPalConvert%(i%)=no% : next i%
dim PictTSVpalette%    : no%=no%+1 : PictTSVpalette%=no%

label MouseMoveCadre
label MouseMovePalette
label ClicBtn
label ClicPalWindows
label ClicPalPerso
label DClicPictChxPalette
label DClicPalPerso
label Change
 
button 9999
top 9999,10
left 9999,10
caption 9999,"Outils couleurs"
on_click 9999,ClicBtn
end

sub FormPalette()
   dim_local i%,l%,t%,x%,y%,V$
  
   if object_exists(FenPaletteCouleur%)=1
      show FenPaletteCouleur%
   else
      create_hide
      form FenPaletteCouleur%
      border_small FenPaletteCouleur%
      height FenPaletteCouleur%,305
      width FenPaletteCouleur%,450
      top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2
      left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2
      caption FenPaletteCouleur%,"Outils couleurs"
      
      font_name FenPaletteCouleur%,"Arial"
      font_size FenPaletteCouleur%,8
      font_color FenPaletteCouleur%,85,85,127
      
      container ContPalette%
      parent ContPalette%,FenPaletteCouleur%
      height ContPalette%,height_client(FenPaletteCouleur%)-5
      width ContPalette%,width_client(FenPaletteCouleur%)-10
      top ContPalette%,0
      left ContPalette%,5
      on_mouse_move ContPalette%,MouseMoveCadre
      
      alpha AlphPalette%(1)
      parent AlphPalette%(1),ContPalette%
      top AlphPalette%(1),15
      left AlphPalette%(1),5
      caption AlphPalette%(1),"Couleurs Windows :"
      
      l%=5      
      for x%=1 to 8
         t%=top(AlphPalette%(1))+height(AlphPalette%(1))+5      
         for y%=1 to 6
            i%=i%+1            
            picture PictPalWindows%(i%)
            parent PictPalWindows%(i%),ContPalette%
            height PictPalWindows%(i%),20
            width PictPalWindows%(i%),20
            top PictPalWindows%(i%),t%
            left PictPalWindows%(i%),l%
            read V$
            color PictPalWindows%(i%),hex(mid$(v$,1,2)),hex(mid$(v$,3,2)),hex(mid$(v$,5,2))
            cursor_point PictPalWindows%(i%)
            on_click PictPalWindows%(i%),ClicPalWindows
            t%=t%+25              
         next y%
         l%=l%+25  
      next x%
      
      alpha AlphPalette%(2)
      parent AlphPalette%(2),ContPalette%
      top AlphPalette%(2),top(PictpalWindows%(48))+height(PictpalWindows%(48))+10
      left AlphPalette%(2),5
      caption AlphPalette%(2),"Couleurs Personnalisées :"      

      l%=5
      i%=0      
      for x%=1 to 8
         t%=top(AlphPalette%(2))+height(AlphPalette%(2))+5      
         for y%=1 to 2
            i%=i%+1            
            picture PictPalPerso%(i%)
            parent PictPalPerso%(i%),ContPalette%
            height PictPalPerso%(i%),20
            width PictPalPerso%(i%),20
            top PictPalPerso%(i%),t%
            left PictPalPerso%(i%),l%
            color PictPalPerso%(i%),0,0,0
            cursor_point PictPalPerso%(i%)
            hint PictPalPerso%(i%),"Clic pour sélectionner"+chr$(13)+"Double clic pour effacer"
            on_click PictPalPerso%(i%),ClicPalPerso
            on_double_click PictPalPerso%(i%),DClicPalPerso
            t%=t%+25              
         next y%
         l%=l%+25  
      next x%

      picture PictPalette%
      parent PictPalette%,ContPalette%
      height PictPalette%,128
      width PictPalette%,158
      top PictPalette%,top(AlphPalette%(1))+height(AlphPalette%(1))+5
      left PictPalette%,left(PictPalWindows%(48))+width(PictPalWindows%(48))+30
      file_load PictPalette%,"palette.bmp"
      cursor_cross PictPalette%
      on_mouse_move PictPalette%,MouseMovePalette
      on_click PictPalette%,ClicBtn
  
      picture PictTSVpalette%
      parent PictTSVpalette%,ContPalette%
      height PictTSVpalette%,128
      width PictTSVpalette%,15
      top PictTSVpalette%,top(PictPalette%)
      left PictTSVpalette%,left(PictPalette%)+width(PictPalette%)+5
      ColorPictTSVpalette(0,0,0)
        
      picture PictChxPalette%
      parent PictChxPalette%,ContPalette%
      height PictChxPalette%,22
      width PictChxPalette%,22
      top PictChxPalette%,top(PictPalette%)+height(PictPalette%)+5
      left PictChxPalette%,left(PictPalette%)
      color PictChxPalette%,0,0,0
      cursor_point PictChxPalette%
      hint PictChxPalette%,"Cliquer pour convertir"+chr$(13)+"Double clic pour sauvegarder dans les couleurs personnalisées"
      on_click PictChxPalette%,ClicBtn
      on_double_click PictChxPalette%,DClicPictChxPalette
      
      t%=top(PictChxPalette%)
      l%=left(PictChxPalette%)+width(PictChxPalette%)+5
      for i%=1 to 3
         spin SpnPalette%(i%)
         parent SpnPalette%(i%),ContPalette%
         width SpnPalette%(i%),45
         top SpnPalette%(i%),t%
         left SpnPalette%(i%),l%
         l%=l%+width(SpnPalette%(i%))+5
         font_color SpnPalette%(i%),255,255,255
         min SpnPalette%(i%),0
         max SpnPalette%(i%),255            
      next i%
      color SpnPalette%(1),255,0,0
      color SpnPalette%(2),0,180,0
      color SpnPalette%(3),0,0,255
      
      alpha AlphPalConvert%(1)
      parent AlphPalConvert%(1),ContPalette%
      caption AlphPalConvert%(1),"RGB => "
      top AlphPalConvert%(1),top(SpnPalette%(1))+height(SpnPalette%(1))+10
      left AlphPalConvert%(1),left(PictChxPalette%)
      
      alpha AlphPalConvert%(2)
      parent AlphPalConvert%(2),ContPalette%
      caption AlphPalConvert%(2),"HTML => "
      top AlphPalConvert%(2),top(AlphPalConvert%(1))+height(AlphPalConvert%(1))+5
      left AlphPalConvert%(2),left(PictChxPalette%)
      
      alpha AlphPalConvert%(3)
      parent AlphPalConvert%(3),ContPalette%
      caption AlphPalConvert%(3),"KGF => "
      top AlphPalConvert%(3),top(AlphPalConvert%(2))+height(AlphPalConvert%(2))+5
      left AlphPalConvert%(3),left(PictChxPalette%)
      create_show
      top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2
      left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2
      show_all  
   end_if
  
   for i%=1 to 16
      if ColPerso%(i%)<>0
         r%= bin_and(ColPerso%(i%),255)
         g%= bin_and(int(ColPerso%(i%)/256),255)
         b%= bin_and(int(ColPerso%(i%)/(256*256)),255)
         color PictPalPerso%(i%),r%,g%,b%
      end_if
   next i%
end_sub

Change:
   if number_change>(SpnPalette%(1)-1) and number_change<(SpnPalette%(3)+1)
      if position(number_change)>255 or position(number_change)<0
         message "Valeur incorrecte !"+chr$(13)+"Valeur de 0 et 255"
         position number_change,255
         return
      end_if
      color PictChxPalette%,position(SpnPalette%(1)),position(SpnPalette%(2)),position(SpnPalette%(3))
      return
   end_if
return

MouseMovePalette:
   off_mouse_move PictPalette%
      if mouse_x_position(PictPalette%)<0 or mouse_y_position(PictPalette%)<0
     return
  end_if
      if object_exists(SpnPalette%(1))=1 : off_change SpnPalette%(1) : end_if
      if object_exists(SpnPalette%(2))=1 : off_change SpnPalette%(2) : end_if
      if object_exists(SpnPalette%(3))=1 : off_change SpnPalette%(3) : end_if
      r%=color_pixel_red(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%))
      g%=color_pixel_green(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%))
      b%=color_pixel_blue(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%))
      color PictChxPalette%,r%,g%,b%
      position SpnPalette%(1),r%
      position SpnPalette%(2),g%
      position SpnPalette%(3),b%
   on_mouse_move PictPalette%,MouseMovePalette  
return

MouseMoveCadre:
   if object_exists(SpnPalette%(1))=1 : on_change SpnPalette%(1),Change : end_if
   if object_exists(SpnPalette%(2))=1 : on_change SpnPalette%(2),Change : end_if
   if object_exists(SpnPalette%(3))=1 : on_change SpnPalette%(3),Change : end_if
return

ClicBtn:
   if number_click = 9999
      FormPalette()
      return
   end_if
   if number_click = PictPalette%
      if EtatStandByPalette%=0
         EtatStandByPalette%=1
         off_mouse_move PictPalette%
         ColorPictTSVpalette(R%,G%,B%)
         cursor_default PictPalette%
      else
         EtatStandByPalette%=0
         on_mouse_move PictPalette%,MouseMovePalette
         cursor_cross PictPalette%      
      end_if
      return
   end_if
   if number_click = PictChxPalette%
      r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
      g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
      b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
      ConvertChxPalette(r%,g%,b%)
      return
   end_if
return

DClicPictChxPalette:
   r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
   g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
   b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%))
   SaveColorPerso(r%,g%,b%)
return

sub SaveColorPerso(r1%,g1%,b1%)
   dim_local i%
  
   for i%=1 to 16
       if ColPerso%(i%)=0
          ColPerso%(i%)=(b1%*256+g1%)*256+r1%
          color PictPalPerso%(i%),r1%,g1%,b1%
          exit_for
       end_if
   next i%
end_sub

ClicPalWindows:
   off_change SpnPalette%(1)
   off_change SpnPalette%(2)
   off_change SpnPalette%(3)
   r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
   g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
   b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
   ColorPictTSVpalette(R%,G%,B%)
   color PictChxPalette%,r%,g%,b%
   position SpnPalette%(1),r%
   position SpnPalette%(2),g%
   position SpnPalette%(3),b%  
return

ClicPalPerso:
   if mouse_left_down(number_click)=1
      off_change SpnPalette%(1)
      off_change SpnPalette%(2)
      off_change SpnPalette%(3)
      r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
      g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
      b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click))
      ColorPictTSVpalette(R%,G%,B%)
      color PictChxPalette%,r%,g%,b%
      position SpnPalette%(1),r%
      position SpnPalette%(2),g%
      position SpnPalette%(3),b%
   else
      message "Raté !!"
   end_if
return

DClicPalPerso:
   color number_double_click,0,0,0
   InitColPerso()
return

sub InitColPerso()
   dim_local i%
  
   for i%=1 to 16
      if number_double_click = PictPalPerso%(i%)
      ColPerso%(i%)=0
      end_if
   next i%
end_sub

sub ConvertChxPalette(R1%,G1%,B1%)
   dim_local RH$,GH$,BH$,KGFc$
    
   RH$ = Hex$(R1%) : if R1% < 16 then RH$ = "0" + RH$
   GH$ = Hex$(G1%) : if G1% < 16 then GH$ = "0" + GH$
   BH$ = Hex$(B1%) : if B1% < 16 then BH$ = "0" + BH$
  
   KGFc$ = str$((B1%*256+G1%)*256+R1%)
   caption AlphPalConvert%(1),"RGB  => "+str$(R1%)+","+str$(G1%)+","+str$(B1%)
   caption AlphPalConvert%(2),"HTML => "+RH$+GH$+BH$
   caption AlphPalConvert%(3),"KGF  => "+KGFc$      
end_sub

sub ColorPictTSVpalette(R1%,V1%,B1%)
   dim_local i%,T,S,L,R%,V%,B%,x%

   R%=R1% : V%=V1% : B%=B1%  
   RGBtoTSL(R%,V%,B%)
   T=TSL_T : S=TSL_S
   cls
   2d_target_is PictTSVpalette%
   for i%=1 to 127
      if i%>100
         L=100
      else
         L=i%
      end_if
      TSLtoRGB(T,S,L)      
  if RGB_R%>-1 and RGB_G%>-1 and RGB_B%>-1
     if RGB_R%<256 and RGB_G%<256 and RGB_B%<256
               2d_pen_color RGB_R%,RGB_G%,RGB_B%
               2d_line 1,i%,15,i%
             end_if
  end_if
   next i%

end_sub

sub RGBtoTSL(R%,V%,B%)
   dim_local i%,Mx%,Mx1%,Mn%,Mn1%,C%,t$,x%
  
   if variable("TSL_T")=0 then dim TSL_T
   if variable("TSL_S")=0 then dim TSL_S
   if variable("TSL_L")=0 then dim TSL_L
  
   Mx1% = Max(R%,V%)
   if Mx1% = R% : Mx% = Max(R%,B%) : else : Mx% = Max(V%,B%) : end_if
   Mn1% = Min(R%,V%)
   if Mn1% = R% : Mn% = Min(R%,B%) : else : Mn% = Min(V%,B%) : end_if
   C% = Mx%-Mn%  
   if Mx% = R%
      if C%>0 : TSL_T = 60*mod(((V%-B%)/C%),6) : else : TSL_T = 60*mod((V%-B%),6) : end_if
   else
      if Mx% = V%
         if C%>0 : TSL_T = 60*(((B%-R%)/C%)+2) : else : TSL_T = 60*((B%-R%)+2) : end_if
      else
         if C%>0 : TSL_T = 60*(((R%-V%)/C%)+4) : else : TSL_T = 60*((R%-V%)+4)  : end_if
      end_if
   end_if
  
   if C%>0  : TSL_S = 100*(C%/Mx%) : else : TSL_S = 0 : end_if
   t$=str$(frac(TSL_S))+"00"
   t$=left$(t$,2)
   if val(t$)>50
      TSL_S=int(TSL_S)+1 : else : TSL_S=int(TSL_S)
   end_if
      
   if Mx%>0 : TSL_L = 100*(Mx%/255): else : TSL_L = 0 : end_if
   t$=str$(frac(TSL_L))+"00"
   t$=left$(t$,2)
   if val(t$)>50
      TSL_L=int(TSL_L)+1 : else : TSL_L=int(TSL_L)
   end_if  
  
  
end_sub

sub TSLtoRGB(T,S,L)
    dim_local i,Mx,Mm,C,X

   if variable("RGB_R%")=0 then dim RGB_R%
   if variable("RGB_G%")=0 then dim RGB_G%
   if variable("RGB_B%")=0 then dim RGB_B%
 
   Mx = L*255/100
   Mm = (100-S)*L*(255/10000)
   C = Mx-Mm
   i = T/60
   X = C*mod(i,2)  
   if i<1
      RGB_R% = int(C+Mm)
      RGB_G% = int(X+Mm)
      RGB_B% = int(Mm)
   else
      if i>0.99 and i<2
         RGB_R% = int(X+Mm)
         RGB_G% = int(C+Mm)
         RGB_B% = int(Mm)  
      else
         if i>1.99 and i<3
            RGB_R% = int(Mm)
            RGB_G% = int(C+Mm)
            RGB_B% = int(X+Mm)  
         else
            if i>2.99 and i<4
               RGB_R% = int(Mm)
               RGB_G% = int(X+Mm)
               RGB_B% = int(C+Mm)
            else
               if i>3.99 and i<5
                  RGB_R% = int(X+Mm)
                  RGB_G% = int(Mm)
                  RGB_B% = int(C+Mm)
               else
                  RGB_R% = int(C+Mm)
                  RGB_G% = int(Mm)
                  RGB_B% = int(X+Mm)
               end_if
            end_if
         end_if
      end_if  
   end_if
end_sub

DATA "FF8080","FFFF80","80FF80","00FF80","80FFFF","0080FF","FF80C0","FF80FF"
DATA "FF0000","FFFF00","80FF00","00FF40","00FFFF","0080C0","8080C0","FF00FF"
DATA "804040","FF8040","00FF00","008080","004080","8080FF","800040","FF0080"
DATA "800000","FF8000","008000","008040","0000FF","0000A0","800080","8000FF"
DATA "400000","804000","004000","004040","000080","000040","400040","400080"
DATA "000000","808000","808040","808080","408080","C0C0C0","400040","FFFFFF"

exemple de bizarrerie :

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc37



Nombre de messages : 447
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Outils couleurs   Dim 21 Mai 2017 - 19:01

As-tu le fichier palette.bmp STP ?
Je ne l'ai pas trouvé sur ton Webdav.

Je n'ai qu'une version JPG que j'ai converti en BMP, d'où un manque de précision et l’impossibilité d'obtenir les valeurs extrêmes.

En attendant, je teste ta dernière version.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Outils couleurs   

Revenir en haut Aller en bas
 
Outils couleurs
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 4Aller à la page : Précédent  1, 2, 3, 4  Suivant
 Sujets similaires
-
» PA - explications des outils couleurs
» trousse a outils
» Comment modifier une les couleurs d une image swf ?
» Gras souligné et Italique en Couleurs dans les Sujets
» Utilisation des outils de modération

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: