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
» KGF_dll - nouvelles versions
par pascal10000 Aujourd'hui à 23:07

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Pedro Alvarez Aujourd'hui à 22:45

» StratégoV8
par Jean Claude Aujourd'hui à 19:55

» probleme de touche (verr num)
par pascal10000 Aujourd'hui à 16:20

» Mah-Jong européen new-look
par jjn4 Aujourd'hui à 15:58

» track_bar circulaire
par Klaus Hier à 21:41

» Gestionnaire de Projets Panoramic
par Jean Claude Hier à 20:41

» Gestion de l'Unicode
par jean_debord Hier à 11:21

» Button_picture
par pascal10000 Jeu 14 Déc 2017 - 11:41

» Pourquoi le compilateur stagne
par Minibug Jeu 14 Déc 2017 - 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Jeu 14 Déc 2017 - 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Jeu 14 Déc 2017 - 10:03

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Couleur : traitement par Teinte, Saturation, Luminosité

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

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Couleur : traitement par Teinte, Saturation, Luminosité   Jeu 27 Jan 2011 - 1:13

Bonsoir,
Pour un projet sur lequel je gamberge (utilitaire de création de feuille de style CSS avec mini langage script)
j'ai crée une petite librairie qui me permet d'obtenir les valeurs RVB d'une couleur à partir des paramètres de Teinte, de Saturation et de Luminosité.
Le but est de pouvoir crée en panoramic ceci : http://www.colorpicker.com/

Voici la librairie que j'ai appelé Color.lib

Code:
' ' =======================================================
'  Librairie gestion couleur
' =======================================================

' Procedures publiques
label TSLtoRVB
label RVBtoTSL    : ' pas encore...

label RVBtoTSV
label TSVtoRVB

' variables publiques
dim color_RVB(3), color_i
dim color_TSL(3)    : ' teinte saturation luminosite
dim color_TSV(3)

' Procedures privées
label CalcCompo

' variables privées
dim color_TSL2RVB(5) : ' tr, tv, tb, p, q
dim color_Calc_p, color_Calc_q, color_Calc_tc, color_Calc_result
dim TsvByRgbCode(3) : ' 0:rouge, 1:vert, 2:bleu, 3:maxVal, 4:minVal
dim RgbByHsv(8) : ' 0:T  1:S  2:V  3:Hi  4:f  5:p  6:q  7:t

label lib_Color : goto lib_Color

' -------------------------------------------------------
'  Conversion TSL (Teinte,Saturation,Luminosite) -> RVB
' -------------------------------------------------------
TSLtoRVB:
  ' Si la saturation est nulle, on a du gris, la teinte n'a pas d'importance
  ' on applique la valeur de luminosite de partout
  if color_TSL(1) = 0
    color_RVB(0) = color_TSL(2) * 255
    color_RVB(1) = color_RVB(0)
    color_RVB(2) = color_RVB(1)
  else
    ' Ici on a deux cas : pour L<0.5 on assombrit
    ' et pour L>0.5 on éclaircit
    if color_TSL(2) < 0.5
      color_TSL2RVB(4) = color_TSL(2) * (1 + color_TSL(1))
    else
      color_TSL2RVB(4) = color_TSL(2) + color_TSL(1) - (color_TSL(2) * color_TSL(1))
    end_if

    color_TSL2RVB(3) = 2 * color_TSL(2) - color_TSL2RVB(4)


    color_TSL2RVB(1) = color_TSL(0)/360
    color_TSL2RVB(0) = color_TSL2RVB(1) + (1/3)
    color_TSL2RVB(2) = color_TSL2RVB(1) - (1/3)
    for color_i=0 to 2
      if color_TSL2RVB(color_i) < 0 then color_TSL2RVB(color_i) = color_TSL2RVB(color_i) + 1
      if color_TSL2RVB(color_i) > 1 then color_TSL2RVB(color_i) = color_TSL2RVB(color_i) - 1
    next color_i

    color_Calc_p = color_TSL2RVB(3) : color_Calc_q = color_TSL2RVB(4) : color_Calc_tc = color_TSL2RVB(0)
    gosub CalcCompo: color_RVB(0) = int(color_Calc_result * 255)

    color_Calc_p = color_TSL2RVB(3) : color_Calc_q = color_TSL2RVB(4) : color_Calc_tc = color_TSL2RVB(1)
    gosub CalcCompo: color_RVB(1) = int(color_Calc_result * 255)

    color_Calc_p = color_TSL2RVB(3) : color_Calc_q = color_TSL2RVB(4) : color_Calc_tc = color_TSL2RVB(2)
    gosub CalcCompo: color_RVB(2) = int(color_Calc_result * 255)
  end_if
return

CalcCompo:
 if color_Calc_tc < (1/6)
  color_Calc_result = color_Calc_p + ((color_Calc_q-color_Calc_p)*6*color_Calc_tc)
 else
  if color_Calc_tc < 0.5
    color_Calc_result = color_Calc_q
  else
    if color_Calc_tc < (2/3)
      color_Calc_result = color_Calc_p + ((color_Calc_q - color_Calc_p)*6*((2/3)-color_Calc_tc))
    else
      color_Calc_result = color_Calc_p
    end_if
  end_if
 end_if
return

' -------------------------------------------------------
'  Conversion RVB -> TSL (Teinte,Saturation,Luminosite)
' -------------------------------------------------------

RVBtoTSL:
  r=color_RVB(0)/255
  v=color_RVB(1)/255
  b=color_RVB(2)/255
 
return


RVBtoTSV:
  if (color_RVB(0) + color_RVB(1) + color_RVB(2)) = 0
    color_TSV(0) = 0 : color_TSV(1) = 0 : color_TSV(2) = 0
    return
  end_if
  ' conversion composantes en float
  for color_i = 0 to 2 : TsvByRgbCode(color_i) = color_RVB(color_i) / 255 : next color_i
  ' MaxVal
  TsvByRgbCode(3) =  TsvByRgbCode(0)
  if TsvByRgbCode(1) > TsvByRgbCode(3) then TsvByRgbCode(3) = TsvByRgbCode(1)
  if TsvByRgbCode(2) > TsvByRgbCode(3) then TsvByRgbCode(3) = TsvByRgbCode(2)
  ' MinVal
  TsvByRgbCode(4) =  TsvByRgbCode(0)
  if TsvByRgbCode(1) < TsvByRgbCode(4) then TsvByRgbCode(4) = TsvByRgbCode(1)
  if TsvByRgbCode(2) < TsvByRgbCode(4) then TsvByRgbCode(4) = TsvByRgbCode(2)
  ' Calcul de la teinte
  color_TSV(0) = 0
  if TsvByRgbCode(3)=TsvByRgbCode(4)
    color_TSV(0)=0:color_TSV(1)=0
  else
    ' rouge = MaxVal ?
    if TsvByRgbCode(0) = TsvByRgbCode(3)
      color_TSV(0) = (TsvByRgbCode(1)-TsvByRgbCode(2))/(TsvByRgbCode(3)-TsvByRgbCode(4)) : ' H = (V - B) / (Max - Min)
    else
      ' vert = MaxVal ?
      if TsvByRgbCode(1) = TsvByRgbCode(3)
        color_TSV(0) = 2 + (TsvByRgbCode(2)-TsvByRgbCode(0)) / (TsvByRgbCode(3)-TsvByRgbCode(4)) : ' H = 2+ (B - R) / (Max - Min)
      else
        ' bleu = MaxVal ?
        if TsvByRgbCode(2) = TsvByRgbCode(3)
          color_TSV(0) = 4 + (TsvByRgbCode(0)-TsvByRgbCode(1)) /(TsvByRgbCode(3)-TsvByRgbCode(4)) : ' H = 4 + (R - V) / (Max - Min)
        end_if
      end_if
    end_if
    color_TSV(1) = (TsvByRgbCode(3)-TsvByRgbCode(4)) / TsvByRgbCode(3) : ' Saturation = (Max - Min) / Max
  end_if
  color_TSV(0) = color_TSV(0) * 60 : ' Teinte
  color_TSV(2) = TsvByRgbCode(3)  : ' Val
  if color_TSV(0) < 0 then color_TSV(0) = color_TSV(0) + 360
return


TSVtoRVB:
  for color_i=0 to 2: RgbByHsv(color_i) = color_TSV(color_i) : next color_i
  RgbByHsv(3) = int(RgbByHsv(0)/60)  : ' faire un floor
  if (RgbByHsv(0) = 360) then RgbByHsv(0) = 0
  RgbByHsv(4) = RgbByHsv(0)/ 60 - RgbByHsv(3)
  if (RgbByHsv(1)>1) then RgbByHsv(1) = RgbByHsv(1) / 100
  if (RgbByHsv(2)>1) then RgbByHsv(2) = RgbByHsv(2) / 100
  RgbByHsv(5) = RgbByHsv(2) * (1-RgbByHsv(1))
  RgbByHsv(6) = RgbByHsv(2) * (1-(RgbByHsv(4)*RgbByHsv(1)))
  RgbByHsv(7) = RgbByHsv(2) * (1 - ((1-RgbByHsv(4))*RgbByHsv(1)))
  ' par defaut :
  color_RVB(0)=RgbByHsv(2):color_RVB(1)=RgbByHsv(5):color_RVB(2)=RgbByHsv(6) 
  select RgbByHsv(3)
    case 0: color_RVB(0)=RgbByHsv(2):color_RVB(1)=RgbByHsv(7):color_RVB(2)=RgbByHsv(5)
    case 1: color_RVB(0)=RgbByHsv(6):color_RVB(1)=RgbByHsv(2):color_RVB(2)=RgbByHsv(5)
    case 2: color_RVB(0)=RgbByHsv(5):color_RVB(1)=RgbByHsv(2):color_RVB(2)=RgbByHsv(7)
    case 3: color_RVB(0)=RgbByHsv(5):color_RVB(1)=RgbByHsv(6):color_RVB(2)=RgbByHsv(2)
    case 4: color_RVB(0)=RgbByHsv(7):color_RVB(1)=RgbByHsv(5):color_RVB(2)=RgbByHsv(2)
  end_select
  if (RgbByHsv(1) = 0)
    color_RVB(0)=RgbByHsv(2):color_RVB(1)=color_RVB(0):color_RVB(2)=color_RVB(0)
  end_if
  for color_i=0 to 2
    color_RVB(color_i) = int(color_RVB(color_i) * 255)
    if (color_RVB(color_i) > 255) then color_RVB(color_i) = 255
  next color_i
return

lib_Color:
ainsi qu'un petit programme de démo :
Code:
hide 0
#include "Color.lib"
label start

dim teinte
dim Saturation
dim Luminosite
dim x,y,r
dim pas
dim offset_x,offset_y

pas = 4/255
offset_x = 30 : offset_y = 50 : ' positionnement du picture


width 0,(2*int(1/pas))+(5*offset_x)+20
height 0,150+int(1/pas)+offset_y

button 1 : on_click 1,start : caption 1,"Start"
2D_PEN_COLOR 0,0,0

picture 7: 2d_target_is 7: left 7,offset_x : top 7, offset_y : width 7, width(0)-(2*offset_x)
alpha 2:caption 2,"TSV:":top 2,top(7)-height(2):LEFT 2,left(7)+offset_x
alpha 3:caption 3,"TSL:":top 3,top(2):LEFT 3,left(7)+(2*offset_x)+int(1/pas)
alpha 4:caption 4,"Teinte:":top 4,top(2): left 4,left(7)+(3*offset_x)+(2*int(1/pas))
alpha 5:caption 5,"Lum.":top 5,top(7): left 5,offset_x-10
alpha 6:caption 6,"Sat.":top 6,top(7)+height(7)-5:left 6,left(4)-offset_x
show 0

2d_line 1,5,1,height(7)-1
2d_line 1,height(7)-1,left(6)-offset_x,height(7)-1

end

start:
  ' -------------------------------------------
  ' Barre de variation de teinte,
  ' parcours du cercle chromatique (0° à 360°)
  ' -------------------------------------------

  y = int(360/4)+10 : x = (2*int(1/pas))+(3*offset_x) : ' init tracage

  ' on passe par la palette TSV mais on pourrait utiliser la TSL...
  color_TSV(1) = 1  : ' reglage de la saturation (à fond pour avoir des couleurs vives)
  color_TSV(2) = 1  : ' valeur de luminosité  (à fond également)

  for teinte = 0 to 360 step 4
    color_TSV(0) = teinte
    gosub TSVtoRVB :2D_PEN_COLOR color_RVB(0),color_RVB(1),color_RVB(2)
    2d_line x,y,x+15,y
    y = y - 1
  next teinte

  ' -----------------------------------------------
  ' Affichage des palettes TSL TSV
  ' -----------------------------------------------

  ' init de la teinte par défaut (on peut mettre ce que l'on veut)
  color_TSV(0)=0: color_TSL(0)=0: x=0

  ' variation de la saturation sur axe des x
  for Saturation = 0 to 1 step pas
    color_TSV(1) = Saturation
    color_TSL(1) = Saturation
    x=x+1
    y=(height(7)-(1/pas))/2 : ' y = ( hauteur(picture) - hauteur(palette) ) / 2
    ' axe des y : variation de la luminosité
    for Luminosite = 1 to 0 step pas*(-1)
      color_TSV(2) = Luminosite
      color_TSL(2) = Luminosite
      y = y + 1
      ' palette TSV
      gosub TSVtoRVB : 2D_PEN_COLOR color_RVB(0),color_RVB(1),color_RVB(2)
      2d_point x+offset_x,y
      ' palette TSL
      gosub TSLtoRVB : 2D_PEN_COLOR color_RVB(0),color_RVB(1),color_RVB(2)
      2d_point x+(2*offset_x)+int(1/pas),y
    next Luminosite
    display  : ' synchro sur colonne
  next Saturation

return

Le tableau color_TSL(0-2) doit contenir :
0: Teinte, de 0 à 360° (voir cercle chromatique)
1: Saturation valeur comprise entre 0 et 1
2: Luminosité, valeur comprise en 0 et 1

Et en retour le tableau color_RVB( )....

Edit : Ajout des fonctions TSVtoRVB et RVBtoTSV


Dernière édition par Nardo26 le Jeu 27 Jan 2011 - 19:08, édité 4 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: re   Jeu 27 Jan 2011 - 1:35

pourquopi j'ai droit à un :

70 label not défini line 19

scratch

en fait au départ c'est sens qui est pas défini puis j'ai décalé les déclaration de variable
pour rajouter des dim et supprimer des virgules à chaque fois il décale l'erreur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Jeu 27 Jan 2011 - 2:07

Recopie la derniere version de color.lib...
et dis moi qi ca marche...
en fait ce n'est pas sens, le include fausse le n° de ligne où se trouve l'erreur
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: Re   Jeu 27 Jan 2011 - 2:15

tu as oublié le message pour les épileptiques...
Laughing
ce que je vois :
une succession de couleur en sorte de fondu

je pense que c'était le but
du moins je l'espère..
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Jeu 27 Jan 2011 - 2:34

Le truc c'est de pouvoir générer des palettes de couleurs en faisant varier la luminosité...
Bon c'est vrai que la démo n'est pas terrible...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: Re   Jeu 27 Jan 2011 - 2:37

Tu es sur la voie.
et tu n'est pas loin de ton exemple (cf ton lien)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Jeu 27 Jan 2011 - 18:41

Bonjour,

J'ai rajouté des nouvelles procédures pour le traitement en TSV. J'en ai profité pour modifier le petit programme de démo.

Cette petite démo est là pour montrer la différence entre les différentes gestion de couleur: TSV / TSL
Il est clair que pour afficher une palette de couleur, il faut procéder différemment :
Je ne me suis pas encore vraiment penché sur le truc mais je soupconne l'utilisation d'une image png comme masque (avec transparence)
et application d'une teinte par dessus...

Cette démo est là juste pour montrer les appels aux procédures de conversion...

Un article qui explique tout : http://www.pausedotnet.fr/system-drawing-color-tsl-tsv-hsl-hsv/
Wink

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: Re   Jeu 27 Jan 2011 - 18:55

Et...
...on peut voir ça où ?

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

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Jeu 27 Jan 2011 - 19:03

Pour la mise à jour, j'ai édité le 1er Post...
c'est plus simple... Wink

Edit : Une petite erreur s'etait glissée dans le code de demo:
la palette de gauche est en TSV et celle de droite TSL
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: Re   Jeu 27 Jan 2011 - 19:21

Dis moi ......heuuuuu
comment tu fermes le form ?

il y a comme un pb même la croix ne ferme plus la fenêtre .

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

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Jeu 27 Jan 2011 - 19:56

Il faut être patient : le micro tourne à fond...
il faut attendre la fin des calculs...
J'ai pas trouvé le moyen de diminuer le taux d'occupation sans que pour autant cela mettent des plombes pour afficher les palettes...
C'est pour cette raison que j'ai mis des "petites" palettes...
Si tu es patient et que tu veux obtenir de belles palettes bien grande,
tu modifie la ligne qui défini le pas :
par exemple tu peux mettre :

pas = 1/255

Mais dans ce cas, tu peux aller boire un café, faire les courses, promener le chien...
Wink

Dans la démo que j'ai mis avec un pas de 4/255 cela met à peu près entre 30 et 40 secondes sur mon PC...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: re   Jeu 27 Jan 2011 - 20:03

Bon...
...Je vais voir ma maitresse et je reviens.

lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Ven 28 Jan 2011 - 18:06

Bonjour,

J'ai poursuivi le développement de ma librairie de gestion de couleur.
Elle nécessite une autre librairie (de conversion en bas Hexa)
Tout est dans ce zip :
http://nardo26.lescigales.org/Panoramic/Couleur/Couleur.zip

Avec un petit bonus dans la librairie:

Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: Re   Ven 28 Jan 2011 - 20:20

Super génial !

un petit truc tout de même,
agrandi un peu le form car à l'éxécution il devient rectangle avec des bordures grises sous vista

+ 10 en Height passe

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

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Ven 28 Jan 2011 - 20:48

Ok, je fais la modif...
Je vais en profiter pour gérer la prise en compte de l'édition de la valeur en hexa...
ca peut servir...
Wink

[Edit]
C'est fait !!!
on peut maintenant changer la valeur hexa et les autres champs sont automatiquement mis à jour.
voir le lien du fichier zip...

[/Edit]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: RE   Ven 28 Jan 2011 - 22:53

Bon ben... te voilà bon pour faire la bise à Claire Chazal toi aussi.
Encore un programme Panoramic au point.

Bon...heu...
le chieur de service te dirait que "Lum" au lieu de "Val" serait plus parlant.....
...mais bon....ce serait un chieur de 1ere classe.

Non ? Laughing

( en tout cas celui là je le garde à porté de souri )

PS :Une idée pour toi , si c'est faisable et j'en ai aucune idée, ce serait d'associer
une sorte de d'outils pipette pour récupérer une couleur n'importe où sur l'écran
et l'importer dans ton prog qui définirait ses valeurs.
Ce serait un plus pour ceux qui veulent faire coordonner des couleurs.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Sam 29 Jan 2011 - 1:20

Non, ce n'est pas une erreur... car l'espace de couleur est de type HSV et non pas HSL...
"Valeur" est correct ou alors je peux éventuellement mettre "brillance" .... Wink

Quand à l'outil pipette j'aimerai bien l'intégré mais j'ai bien peur que cela ne soit pas possible.
Il existe bien des commandes COLOR_PIXEL_#### mais celles-ci ne fonctionnent que sur des objets Pano... Sad
Ou alors il faudrait passer par une DLL mais comme je n'arrive pas à faire tourner Delphi sous Win7, je ne peux plus en faire... Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: Re   Sam 29 Jan 2011 - 1:33

Ok autant pour moi sur "val"
pour Delphi j'ai pris le 7 et je suis allé dans les fichiers pour renommer celui qu'il n'arrive pas renommer
c'est con ,excuses moi, c'est idiot c'est tout simplement parcequ'il l'est déjà.
et sur vista ca passe enfin pour ce que j'ai fait avec...

sinon tu peux avec freebasic et fbedit là ça marche si tu es bilingue pour l'aide in english
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Sam 29 Jan 2011 - 11:47

J'ai réussi à faire fonctionner Delphi 7. Je ne sais pas pourquoi, cela n'a pas marché la dernière fois...
Peut être parce que cette fois-ci j'ai fais l'install dans un répertoire différent qui nécessite pas la désactivation de l'UAC?...

J'ai donc fait une petite DLL qui m'a permis de faire la pipette. Smile
C'est franchement perfectible :
Je ne sais pas comment changer la forme du curseur de la souris pour la totalité de l'écran (j'aimerai avoir une croix)
Je maitrise pas delphi... si quelqu'un peut m'aiguiller...

tous les sources sont de le fichier zip dans le post précedent (page 1)...

ATTENTION : Après chargement de la demo, pensez à faire une sauvegarde de ce fichier pour forcer le répertoire par defaut !!!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Klaus

avatar

Nombre de messages : 10274
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Sam 29 Jan 2011 - 13:12

Changer le cursor ? Cherche par Google: delphi change "cursor image"
Deux résultats parmi la liste:

pour faire ron propre curseu:
http://delphi.about.com/od/adptips2005/qt/bmp2cur.htm

pour gérer l'objet curseur:
http://stackoverflow.com/questions/1175870/how-can-i-change-the-mouse-cursor-image
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Sam 29 Jan 2011 - 14:22

Bonjour Klaus,

J'arrive à changer la forme du curseur en faisant ceci:
SetSystemCursor(LoadCursorFromFile('pen_im.cur'),OCR_NORMAL);

Mais cela me pose plusieurs pb :

1- le curseur reprend sa forme d'origine si je passe devant un champs de saisie.
Il faut que je recopie autant de fois cette ligne qu'il y a d'état possible du curseur ?

2- Je ne trouve pas de doc concernant les autres OCR_xxxx,
si je googlelize OCR_NORMAL, fatalement je me retrouve avec des liens sur... OCR_NORMAL et rien concernant les autres mask/const ...

3- je n'ai pas trouvé comment, une fois mon traitement fini, lui faire reprendre sa forme "normale"...

Sad

J'y connais pas grand chose dans la programmation delphi sous windows...

Si tu me parles de programmation de PIC, 9S12DG128A, 68HC11, -> ok pas de pb, mais là... confused
Pendant que j'écris ce message, j'ai le curseur qui ressemble à un gros stabilo et c'est franchement pénible !... Very Happy

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

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

MessageSujet: Re   Sam 29 Jan 2011 - 14:45

Ne t' affole pas, prends ton temps.
ce n'était qu'une suggestion.
je te l'ai faite car tous les log de dessin sont capables de récupérer une couleur
dans leur espace de travail mais pas à l' exterieur.

mais c'est déjà super ton outils est en Panoramic est plus compact que celui de Jack .
Laughing

ps : même Klaus pourrait l'intégrer dans son ide
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Sam 29 Jan 2011 - 15:58

Sinon, pour piquer une couleur n'importe où sur l'écran: http://colorpix.en.softonic.com/
Très pratique et discret, pas d'installation. Mais ce n'est pas sous Panoramic...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Sam 29 Jan 2011 - 18:02

Hello JL35 !

Mon prog arrive à capturer n'importe qu'elle couleur de l'écran...

Ce qui reste à faire et après on en parle plus c'est :
- Gèrer correctement la forme du pointeur de souris
- Faire en sorte que lorsque je clique sur une zone de l'écran ma fenêtre reste au 1er plan.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Klaus

avatar

Nombre de messages : 10274
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   Sam 29 Jan 2011 - 18:07

Voici le code dans KGF.dll qui permet de forcer une fenêtre toujours au-dessus des autres:
Code:
// forcer une fenêtre toujours au-dessus du reste - option ON/OFF
function WindowTopMost(hwnd, flag: integer):integer; stdcall; export;
begin
    if flag=1 then
        begin
        SetForegroundWindow(hwnd);
        SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,
            SWP_NOACTIVATE or SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE);
        end
    else
        SetWindowPos(hwnd,HWND_NOTOPMOST,0,0,0,0,
            SWP_NOACTIVATE or SWP_SHOWWINDOW or SWP_NOMOVE or SWP_NOSIZE);
    result := 1;
end;

Premier paramètre: le handle de la fenêtre
Deuxième paramètre: 1 pour activer cette possibilité, 0 pour la désactiver
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Contenu sponsorisé




MessageSujet: Re: Couleur : traitement par Teinte, Saturation, Luminosité   

Revenir en haut Aller en bas
 
Couleur : traitement par Teinte, Saturation, Luminosité
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Couleur : traitement par Teinte, Saturation, Luminosité
» des photos en couleur de la 14-18
» Augmenter la luminosité
» Couleur et police...
» [SUGGESTION] Changer la couleur du groupe "membres" & idée d'un nouveau groupe

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos projets-
Sauter vers: