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
» A propos des attributs de fichier
par Oscaribout Aujourd'hui à 1:53

» Problème de math
par Marc37 Hier à 23:04

» Problème de math
par braveen Hier à 21:40

» I Love You
par papydall Hier à 19:22

» Un petit "coucou" à tous les Panoramiciens !
par mindstorm Hier à 17:06

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 palette mille couleur

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

avatar

Nombre de messages : 536
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: palette mille couleur   Lun 30 Mar 2015 - 18:21

Bonjour a tous
pour travailler les SUB, je viens de faire une palette de couleurs.
il reste juste un problème " il faut être patient 3 mn environs"
Si quelqu'un peut me donner l'astuce pour compiler
Merci
Code:
 ' palette de couleur par Mindstorm sur une idée original de Nardo

label pick
dim d,a$,r,g,b,ct,h$,i,v,rt,vt,bt,rtt,vtt,btt,y
init()

timer 99:timer_interval 99,100:on_timer 99,pick
end

' Tracé des cases
pick:
timer_off 99
r = color_pixel_red(1,mouse_x_position(1),mouse_y_position(1))
g = color_pixel_green(1,mouse_x_position(1),mouse_y_position(1))
b = color_pixel_blue(1,mouse_x_position(1),mouse_y_position(1))
h$ = right$("0"+hex$(r),2)+right$("0"+hex$(g),2)+right$("0"+hex$(b),2)
ct=65536*r+256*g+b
a$ = "R= "+right$("  "+str$(r),3)+chr$(10)+"G= "+right$("  "+str$(g),3)+chr$(10)+"B= "+right$("  "+str$(b),3)
a$=a$+chr$(10)+h$+chr$(10)+str$(ct)
caption 4,a$
color 2,r,g,b
if clicked (1)=1
  2d_target_is 8
  r=r:v=g:b=b:rt=r:vt=v:bt=b:rtt=0:vtt=0:btt=0
    for y=0 to 126
      rtt=rtt+(r/127) : vtt=vtt+(v/127): btt=btt+(b/127)
      2d_pen_color int(rtt),int(vtt),int(btt):2d_pen_width 15 :2d_line 10,y,10,y
    next y
  r=r:v=g:b=b:rt=r:vt=v:bt=b:rtt=r:vtt=g:btt=b
    for y=0 to 126
      rtt=rtt+((255-r)/127) : vtt=vtt+((255-v)/127): btt=btt+((255-b)/127)
      2d_pen_color int(rtt),int(vtt),int(btt):2d_pen_width 15 :2d_line 30,y,30,y
    next y
end_if

if clicked(8)=1
r = color_pixel_red(8,mouse_x_position(8),mouse_y_position(8))
g = color_pixel_green(8,mouse_x_position(8),mouse_y_position(8))
b = color_pixel_blue(8,mouse_x_position(8),mouse_y_position(8))
h$ = right$("0"+hex$(r),2)+right$("0"+hex$(g),2)+right$("0"+hex$(b),2)
ct=65536*r+256*g+b
a$ = "R= "+right$("  "+str$(r),3)+chr$(10)+"G= "+right$("  "+str$(g),3)+chr$(10)+"B= "+right$("  "+str$(b),3)
a$=a$+chr$(10)+h$+chr$(10)+str$(ct)
caption 4,a$
2d_target_is 3
  color 3,r,g,b
  caption 7,caption$(4)
end_if
timer_on 99
return



sub init()
dim_local i,r,v,b,y ,rt,vt,bt,rtt,vtt,btt
width 0,380 : height 0,170: border_small 0: caption 0,"     -   PALETTE   -"
picture 1 : width 1,170 : height 1,128
picture 2 : top 2,20: left 2,175 : width 2,60 : height 2,50
picture 8:left 8,left (2)+width (2)+4: width 8,40:height 8,128
picture 3 : top 3,20: left 3,left(8)+width(8)+4 : width 3,width(2) : height 3,height(2)

alpha 4: top 4,top(2)+height(2)+3: left 4,left(2): font_name 4,"Lucida Console"
alpha 5 : left 5,left(2)+10 : top 5,5 : caption 5,"Survol": font_bold 5
alpha 6 : left 6,left(8)+width (8)+15 : top 6,5 : caption 6,"Choix": font_bold 6
alpha 7: top 7,top(4): left 7,left(3): font_name 7,"Lucida Console"
2d_target_is 1
' Tracé de la palette

trace(255,0,0,0,0,1,0)
trace(255,255,0,255,(-1),0,0)
trace(0,255,0,510,0,0,1)
trace(0,255,255,765,0,(-1),0)
trace(0,0,255,1020,1,0,0)
trace(255,0,255,1275,0,0,(-1))

show 0
end_sub

' Tracé de la palette  dégradée
sub trace(n_r,n_v,n_b,n_i,cal_r,cal_v,cal_b)
r=n_r:v=n_v:b=n_b
 for i=n_i to (n_i+254)
    r=r+(cal_r):v=v+(cal_v):b=b+(cal_b):y=0 :rt=r:vt=v:bt=b:rtt=rt:vtt=vt:btt=bt
    for y=0 to 127
      2d_pen_color int(rt),int(vt),int(bt):2d_pen_width 5  :2d_line 5+(i/10),y,5+(i/10),y
      rt=rt+((127-rtt)/127) : vt=vt+((127-vtt)/127): bt=bt+((127-btt)/127)
    next y
 next i
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: palette mille couleur   Lun 30 Mar 2015 - 18:38

Ta palette est excellente et bien pratique.
Pour gagner du temps à l'ouverture de la palette, tu pourrais procéder ainsi:
Tu testes si palette.bmp existe.
=> S'il n'existe pas tu créais l'image et tu la sauvegardes et tu l'affiches
=> Si elle existe, tu la charges juste

Ca devrait être beaucoup plus rapide dès la deuxième ouverture Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: palette mille couleur   Lun 30 Mar 2015 - 19:47

Essai çà.
Ce n'est pas plus rapide, mais çà fait patienter.

Code:
' palette de couleur par Mindstorm sur une idée original de Nardo

label pick
dim d,a$,r,g,b,ct,h$,i,v,rt,vt,bt,rtt,vtt,btt,y
dim cpt% : cpt%=1530
init()
timer 99:timer_interval 99,10:on_timer 99,pick
end

' Tracé des cases
pick:
timer_off 99
r = color_pixel_red(1,mouse_x_position(1),mouse_y_position(1))
g = color_pixel_green(1,mouse_x_position(1),mouse_y_position(1))
b = color_pixel_blue(1,mouse_x_position(1),mouse_y_position(1))
h$ = right$("0"+hex$(r),2)+right$("0"+hex$(g),2)+right$("0"+hex$(b),2)
ct=65536*r+256*g+b
a$ = "R= "+right$("  "+str$(r),3)+chr$(10)+"G= "+right$("  "+str$(g),3)+chr$(10)+"B= "+right$("  "+str$(b),3)
a$=a$+chr$(10)+h$+chr$(10)+str$(ct)
caption 4,a$
color 2,r,g,b
if clicked (1)=1
  2d_target_is 8
  r=r:v=g:b=b:rt=r:vt=v:bt=b:rtt=0:vtt=0:btt=0
    for y=0 to 126
      rtt=rtt+(r/127) : vtt=vtt+(v/127): btt=btt+(b/127)
      2d_pen_color int(rtt),int(vtt),int(btt):2d_pen_width 15 :2d_line 10,y,10,y
    next y
  r=r:v=g:b=b:rt=r:vt=v:bt=b:rtt=r:vtt=g:btt=b
    for y=0 to 126
      rtt=rtt+((255-r)/127) : vtt=vtt+((255-v)/127): btt=btt+((255-b)/127)
      2d_pen_color int(rtt),int(vtt),int(btt):2d_pen_width 15 :2d_line 30,y,30,y
    next y
end_if

if clicked(8)=1
r = color_pixel_red(8,mouse_x_position(8),mouse_y_position(8))
g = color_pixel_green(8,mouse_x_position(8),mouse_y_position(8))
b = color_pixel_blue(8,mouse_x_position(8),mouse_y_position(8))
h$ = right$("0"+hex$(r),2)+right$("0"+hex$(g),2)+right$("0"+hex$(b),2)
ct=65536*r+256*g+b
a$ = "R= "+right$("  "+str$(r),3)+chr$(10)+"G= "+right$("  "+str$(g),3)+chr$(10)+"B= "+right$("  "+str$(b),3)
a$=a$+chr$(10)+h$+chr$(10)+str$(ct)
caption 4,a$
2d_target_is 3
  color 3,r,g,b
  caption 7,caption$(4)
end_if
timer_on 99
return



sub init()
dim_local i,r,v,b,y ,rt,vt,bt,rtt,vtt,btt
width 0,380 : height 0,170: border_small 0: caption 0,"    -  PALETTE  -"
picture 1 : width 1,170 : height 1,128
picture 2 : top 2,20: left 2,175 : width 2,60 : height 2,50
picture 8:left 8,left (2)+width (2)+4: width 8,40:height 8,128
picture 3 : top 3,20: left 3,left(8)+width(8)+4 : width 3,width(2) : height 3,height(2)

alpha 4: top 4,top(2)+height(2)+3: left 4,left(2): font_name 4,"Lucida Console"
alpha 5 : left 5,left(2)+10 : top 5,5 : caption 5,"Survol": font_bold 5
alpha 6 : left 6,left(8)+width (8)+15 : top 6,5 : caption 6,"Choix": font_bold 6
alpha 7: top 7,top(4): left 7,left(3): font_name 7,"Lucida Console"
2d_target_is 1
' Tracé de la palette

trace(255,0,0,0,0,1,0)
trace(255,255,0,255,(-1),0,0)
trace(0,255,0,510,0,0,1)
trace(0,255,255,765,0,(-1),0)
trace(0,0,255,1020,1,0,0)
trace(255,0,255,1275,0,0,(-1))

' show 0
end_sub

' Tracé de la palette  dégradée
sub trace(n_r,n_v,n_b,n_i,cal_r,cal_v,cal_b)
r=n_r:v=n_v:b=n_b
 for i=n_i to (n_i+254)
    r=r+(cal_r):v=v+(cal_v):b=b+(cal_b):y=0 :rt=r:vt=v:bt=b:rtt=rt:vtt=vt:btt=bt
    for y=0 to 127
      2d_pen_color int(rt),int(vt),int(bt):2d_pen_width 5  :2d_line 5+(i/10),y,5+(i/10),y
      rt=rt+((127-rtt)/127) : vt=vt+((127-vtt)/127): bt=bt+((127-btt)/127)
    next y
    display
    cpt%=cpt%-1 : caption 0,str$(cpt%)
 next i
Caption 0,"PALETTE OK"
end_sub


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

avatar

Nombre de messages : 536
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: palette mille couleur   Lun 30 Mar 2015 - 19:54

bravo messieurs,
comment trouver des solutions de vieux routards sans répondre à la question!
Je vais m'empresser de les adopter
merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: palette mille couleur   Lun 30 Mar 2015 - 20:16

Tu peux virer toute la ligne  dim_local de la sub init() : elle ne joue aucun rôle.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
mindstorm

avatar

Nombre de messages : 536
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: palette mille couleur   Lun 30 Mar 2015 - 21:14

les  dim locals sont les fantômes du programme de Nardo pale
en cherchant un peut, tu dois en trouver d'autres...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 536
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: palette mille couleur   Mer 1 Avr 2015 - 20:08

merci à Jicehel , Jean Claude et Papydall
qui savent aiguiller juste ou il faut
DONC
Code:
' palette de couleur par Mindstorm sur une idée original de Nardo

label pick
dim d,a$,r,g,b,ct,h$,i,v,rt,vt,bt,rtt,vtt,btt,y
dim cpt% : cpt%=1530
init()
timer 99:timer_interval 99,10:on_timer 99,pick
end

' Tracé des cases
pick:
timer_off 99
r = color_pixel_red(1,mouse_x_position(1),mouse_y_position(1))
g = color_pixel_green(1,mouse_x_position(1),mouse_y_position(1))
b = color_pixel_blue(1,mouse_x_position(1),mouse_y_position(1))
h$ = right$("0"+hex$(r),2)+right$("0"+hex$(g),2)+right$("0"+hex$(b),2)
ct=65536*r+256*g+b
a$ = "R= "+right$("  "+str$(r),3)+chr$(10)+"G= "+right$("  "+str$(g),3)+chr$(10)+"B= "+right$("  "+str$(b),3)
a$=a$+chr$(10)+h$+chr$(10)+str$(ct)
caption 4,a$
color 2,r,g,b
if clicked (1)=1
  2d_target_is 8
  r=r:v=g:b=b:rt=r:vt=v:bt=b:rtt=0:vtt=0:btt=0
    for y=0 to 126
      rtt=rtt+(r/127) : vtt=vtt+(v/127): btt=btt+(b/127)
      2d_pen_color int(rtt),int(vtt),int(btt):2d_pen_width 15 :2d_line 10,y,10,y
    next y
  r=r:v=g:b=b:rt=r:vt=v:bt=b:rtt=r:vtt=g:btt=b
    for y=0 to 126
      rtt=rtt+((255-r)/127) : vtt=vtt+((255-v)/127): btt=btt+((255-b)/127)
      2d_pen_color int(rtt),int(vtt),int(btt):2d_pen_width 15 :2d_line 30,y,30,y
    next y
end_if

if clicked(8)=1
r = color_pixel_red(8,mouse_x_position(8),mouse_y_position(8))
g = color_pixel_green(8,mouse_x_position(8),mouse_y_position(8))
b = color_pixel_blue(8,mouse_x_position(8),mouse_y_position(8))
h$ = right$("0"+hex$(r),2)+right$("0"+hex$(g),2)+right$("0"+hex$(b),2)
ct=65536*r+256*g+b
a$ = "R= "+right$("  "+str$(r),3)+chr$(10)+"G= "+right$("  "+str$(g),3)+chr$(10)+"B= "+right$("  "+str$(b),3)
a$=a$+chr$(10)+h$+chr$(10)+str$(ct)
caption 4,a$
2d_target_is 3
  color 3,r,g,b
  caption 7,caption$(4)
end_if
timer_on 99
return



sub init()
width 0,380 : height 0,170: border_small 0: caption 0,"    -  PALETTE  -"
picture 1 : width 1,170 : height 1,128
picture 2 : top 2,20: left 2,175 : width 2,60 : height 2,50
picture 8:left 8,left (2)+width (2)+4: width 8,40:height 8,128
picture 3 : top 3,20: left 3,left(8)+width(8)+4 : width 3,width(2) : height 3,height(2)

alpha 4: top 4,top(2)+height(2)+3: left 4,left(2): font_name 4,"Lucida Console"
alpha 5 : left 5,left(2)+10 : top 5,5 : caption 5,"Survol": font_bold 5
alpha 6 : left 6,left(8)+width (8)+15 : top 6,5 : caption 6,"Choix": font_bold 6
alpha 7: top 7,top(4): left 7,left(3): font_name 7,"Lucida Console"
2d_target_is 1
' Tracé de la palette
if file_exists ("C:\temp\palette.bmp")=1
  file_load 1,"C:\temp\palette.bmp"

else
trace(255,0,0,0,0,1,0)
trace(255,255,0,255,(-1),0,0)
trace(0,255,0,510,0,0,1)
trace(0,255,255,765,0,(-1),0)
trace(0,0,255,1020,1,0,0)
trace(255,0,255,1275,0,0,(-1))
end_if
' show 0
end_sub

' Tracé de la palette  dégradée

sub trace(n_r,n_v,n_b,n_i,cal_r,cal_v,cal_b)
r=n_r:v=n_v:b=n_b
 for i=n_i to (n_i+254)
    r=r+(cal_r):v=v+(cal_v):b=b+(cal_b):y=0 :rt=r:vt=v:bt=b:rtt=rt:vtt=vt:btt=bt
    for y=0 to 127
      2d_pen_color int(rt),int(vt),int(bt):2d_pen_width 5  :2d_line 5+(i/10),y,5+(i/10),y
      rt=rt+((127-rtt)/127) : vt=vt+((127-vtt)/127): bt=bt+((127-btt)/127)
    next y
    display
    cpt%=cpt%-1 : caption 0,str$(cpt%)
 next i
 file_save 1,"C:\temp\palette.bmp"
Caption 0,"PALETTE stocker"

end_sub
évidemment cela vas beaucoup plus vite la seconde fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: palette mille couleur   Mer 1 Avr 2015 - 21:31

Cool, par ce qu'en principe, ce genre de palette c'est pour servir souvent Wink
Bon aller, un autre truc rien que pour te faire plaisir. Regardes les programmes de JL35 ou d'Ygeronimi et tu verras que tu peux directement inclure l'image dans le source sous forme de data. Donc là, tu galères un peu (au niveau temps) quand tu fais le source mais après pour les utilisateurs, c'est rapide, même la première fois.

Si tu y arrives, on verra si on peut donner un nouveau truc Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: palette mille couleur   Mer 1 Avr 2015 - 21:37

Voir aussi la version Bignono, que tu connais Mindstorm.

http://panoramic.free-boards.net/t3620-nouvelle-palette-de-couleurs?highlight=palette

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

avatar

Nombre de messages : 536
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: palette mille couleur   Mer 1 Avr 2015 - 22:06

oups
dans l'aide, les DATA ont l'air plus simple qu'une image!
et je ne trouve pas les sources dont tu parle
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Jeu 2 Avr 2015 - 6:27

Voilà le code de l' outil de transformation :

Code:
Variables()
Labels()
Gui()

end

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SUB Variables()
  dim_local i%

'  adresses des fichiers externes
  dim kgf$      : kgf$ = "C:\PROGRA~2\PANORA~1\PPE_Vs4b\dll\KGF.dll"
  dim file$
 
'  évenements
  dim clic%

'  objets
  dim no%
  dim mem%      : no%=no%+1 : mem%  = no%
  dim MM%      : no%=no%+1 : MM%  = no%
  dim SM%(10)  : for i% = 1 to 10 : no%=no%+1 : SM%(i%)= no% : next i%
  dim Pan%      : no%=no%+1 : Pan%  = no%
  dim Pict%    : no%=no%+1 : Pict% = no%

'  boites de dialogue
  dim OpenDial% : no%=no%+1 : OpenDial% = no%
  dim SaveDial% : no%=no%+1 : SaveDial% = no%
 
'  fonctions
  dim L%
  dim H%
 
END_SUB

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SUB Labels()
  label clic
END_SUB

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SUB Gui()
  Caption 0,"Image >> Data"
  height 0,500 : width 0,700
  top 0,(screen_y-height(0))/2 : left 0,(screen_x-width(0))/2

  Dlist mem%
  Main_menu MM%
  Sub_menu SM%(1) : Parent SM%(1),MM% : Caption SM%(1),"Ouvrir"      : On_click SM%(1),Clic
  Sub_menu SM%(2) : Parent SM%(2),MM% : Caption SM%(2),"Convertir"  : On_click SM%(2),Clic : Inactive SM%(2)
  Sub_menu SM%(3) : Parent SM%(3),MM% : Caption SM%(3),"Enregistrer" : On_click SM%(3),Clic : Inactive SM%(3)
  Panel Pan%      : Full_space Pan%
  Picture Pict%  : Parent Pict%,Pan% : Hide Pict%
END_SUB

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Clic:
  clic% = number_click
  if clic% = SM%(1) :OpenFile()      : end_if
  if clic% = SM%(2) :Ecriture_Image() : end_if
  if clic% = SM%(3) :Enregistrer()    : end_if
return

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SUB OpenFile()
  dim_local i%
  Inactive SM%(3)
  Open_Dialog OpenDial%
  Dir_dialog OpenDial%,"\"
  Filter OpenDial%,"*.bmp;*.jpg|*.bmp;*.jpg"
  file$=File_name$(OpenDial%)
  Delete OpenDial%
  if file$="_"
      i%=message_information_ok("Vous devez sélectionner un fichier !")
      exit_sub
  end_if
  Caption 0,"Image >> Data  [ "+file_extract_name$(file$)+" ]"
  DetectSize()
  View(L%,H%)
  Active SM%(2)
END_SUB

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Sub DetectSize()
  Dim_Local res%
  dll_on KGF$
  res%=dll_call3("AnalyzeImageFile",adr(file$),adr(L%),adr(H%))
  if res%=1
      message "Extension de fichier invalide !"
  end_if
  dll_off
End_Sub

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SUB View(L%,H%)
  Dim_Local x%,y%,z
  x%=L% :y%=H% :z=1
  if x%>y%
      while x%>width(pan%) or y%>Height(pan%)
        z=z-0.01
        x%=x%*z
        y%=y%*z
      end_while
  else
      while y%>height(pan%) or x%>width(pan%)
        z=z-0.01
        x%=x%*z
        y%=y%*z
      end_while
  end_if
  width Pict%,x% : height Pict%,y%
  File_load Pict%,file$ : Stretch_On Pict%
  show Pict%
END_SUB

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SUB Ecriture_Image()
  Dim_Local nom$,x%,y%,R1%,G1%,B1%,cpt%,line$
  Clear mem%
  Inactive SM%(1)
  Inactive SM%(3)
  nom$=file_extract_name$(File$)
  nom$=LEFT$(nom$,len(nom$)-4)+"_bmp"
  item_add mem%,"Sub Read_"+nom$+"(No%)"
  item_add mem%,"  Dim_local x%,y%,nom$,R%,G%,B%"
  item_add mem%,"  Restore"
  item_add mem%,"  read nom$"
  item_add mem%,"  while nom$<>"+chr$(34)+nom$+chr$(34)
  item_add mem%,"  read nom$"
  item_add mem%,"  End_while"
  item_add mem%,"  2D_Target_Is No%"
  item_add mem%,"  For y%=0 To "+str$(L%-1)
  item_add mem%,"      For x%=0 To "+str$(H%-1)
  item_add mem%,"        Read R% :Read G%  :Read B%"
  item_add mem%,"        2D_Pen_Color R%,G%,B%"
  item_add mem%,"        2D_Point y%,x%"
  item_add mem%,"      Next x%"
  item_add mem%,"      display"
  item_add mem%,"  Next y%"
  item_add mem%,"End_Sub"
  item_add mem%,""
  item_add mem%,"Data "+chr$(34)+nom$+chr$(34)
      for x%=0 to L% -1
        line$=""
        for y%= 0 to H% -1
            cpt%=cpt%+1
            R1% =color_pixel_red(Pict%,x%,y%)
            G1% =color_pixel_green(Pict%,x%,y%)
            B1% =color_pixel_blue(Pict%,x%,y%)
            line$=str$(R1%)+","+str$(G1%)+","+str$(B1%)
            item_add mem%,"data "+line$
            calc_pourcent(cpt%,L%*H%)
            Display
        next y%
      next x%
  caption 0,"Image >> Data  [ "+file_extract_name$(file$)+" ] Convertion terminée !"
  active SM%(1)
  active SM%(3)
END_SUB

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Sub calc_pourcent(P%,NMax%)
    dim_local i%
    i%=int((100*P%)/NMax%)
    caption 0,"Image >> Data  [ "+file_extract_name$(file$)+" ] Convertion : "+str$(i%)+" %"
end_sub

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Sub Enregistrer()
  dim_local a$,b$
  Save_dialog 500
  filter 500,"*.bas|*.bas"
  a$=file_name$(500)
  b$="_bmp.bas"
  if right$(a$,8)<>b$:a$=a$+b$:end_if
  file_save mem%,a$
End_Sub

J' ai pris l' image de la palette, passé à la moulinette au dessus
et je l' ai enregistré  sous  "img_bmp.bas".

J' ai repris ton code, j' ai viré ta sub de création de la palette
placé l' appel de celle générée par l' outils dans le fichier "img_bmp.bas"
puis en fin de fichier, j' ai mis le fichier créé en include.

Voilà ton code avec modif :

Code:
' palette de couleur par Mindstorm sur une idée original de Nardo

label pick
dim d,a$,r,g,b,ct,h$,i,v,rt,vt,bt,rtt,vtt,btt,y
dim cpt% : cpt%=1530
init()
timer 99:timer_interval 99,10:on_timer 99,pick
end

' Tracé des cases
pick:
timer_off 99
r = color_pixel_red(1,mouse_x_position(1),mouse_y_position(1))
g = color_pixel_green(1,mouse_x_position(1),mouse_y_position(1))
b = color_pixel_blue(1,mouse_x_position(1),mouse_y_position(1))
h$ = right$("0"+hex$(r),2)+right$("0"+hex$(g),2)+right$("0"+hex$(b),2)
ct=65536*r+256*g+b
a$ = "R= "+right$("  "+str$(r),3)+chr$(10)+"G= "+right$("  "+str$(g),3)+chr$(10)+"B= "+right$("  "+str$(b),3)
a$=a$+chr$(10)+h$+chr$(10)+str$(ct)
caption 4,a$
color 2,r,g,b
if clicked (1)=1
  2d_target_is 8
  r=r:v=g:b=b:rt=r:vt=v:bt=b:rtt=0:vtt=0:btt=0
    for y=0 to 126
      rtt=rtt+(r/127) : vtt=vtt+(v/127): btt=btt+(b/127)
      2d_pen_color int(rtt),int(vtt),int(btt):2d_pen_width 15 :2d_line 10,y,10,y
    next y
  r=r:v=g:b=b:rt=r:vt=v:bt=b:rtt=r:vtt=g:btt=b
    for y=0 to 126
      rtt=rtt+((255-r)/127) : vtt=vtt+((255-v)/127): btt=btt+((255-b)/127)
      2d_pen_color int(rtt),int(vtt),int(btt):2d_pen_width 15 :2d_line 30,y,30,y
    next y
end_if

if clicked(8)=1
r = color_pixel_red(8,mouse_x_position(8),mouse_y_position(8))
g = color_pixel_green(8,mouse_x_position(8),mouse_y_position(8))
b = color_pixel_blue(8,mouse_x_position(8),mouse_y_position(8))
h$ = right$("0"+hex$(r),2)+right$("0"+hex$(g),2)+right$("0"+hex$(b),2)
ct=65536*r+256*g+b
a$ = "R= "+right$("  "+str$(r),3)+chr$(10)+"G= "+right$("  "+str$(g),3)+chr$(10)+"B= "+right$("  "+str$(b),3)
a$=a$+chr$(10)+h$+chr$(10)+str$(ct)
caption 4,a$
2d_target_is 3
  color 3,r,g,b
  caption 7,caption$(4)
end_if
timer_on 99
return



sub init()
width 0,380 : height 0,170: border_small 0: caption 0,"    -  PALETTE  -"
picture 1 : width 1,170 : height 1,128
picture 2 : top 2,20: left 2,175 : width 2,60 : height 2,50
picture 8:left 8,left (2)+width (2)+4: width 8,40:height 8,128
picture 3 : top 3,20: left 3,left(8)+width(8)+4 : width 3,width(2) : height 3,height(2)

alpha 4: top 4,top(2)+height(2)+3: left 4,left(2): font_name 4,"Lucida Console"
alpha 5 : left 5,left(2)+10 : top 5,5 : caption 5,"Survol": font_bold 5
alpha 6 : left 6,left(8)+width (8)+15 : top 6,5 : caption 6,"Choix": font_bold 6
alpha 7: top 7,top(4): left 7,left(3): font_name 7,"Lucida Console"
2d_target_is 1
' Tracé de la palette
Read_palette_bmp(1)
' show 0
end_sub

' Tracé de la palette  dégradée

sub trace(n_r,n_v,n_b,n_i,cal_r,cal_v,cal_b)
r=n_r:v=n_v:b=n_b
 for i=n_i to (n_i+254)
    r=r+(cal_r):v=v+(cal_v):b=b+(cal_b):y=0 :rt=r:vt=v:bt=b:rtt=rt:vtt=vt:btt=bt
    for y=0 to 127
      2d_pen_color int(rt),int(vt),int(bt):2d_pen_width 5  :2d_line 5+(i/10),y,5+(i/10),y
      rt=rt+((127-rtt)/127) : vt=vt+((127-vtt)/127): bt=bt+((127-btt)/127)
    next y
    display
    cpt%=cpt%-1 : caption 0,str$(cpt%)
 next i
 file_save 1,"C:\temp\palette.bmp"
Caption 0,"PALETTE stocker"

end_sub

#INCLUDE "img_bmp.bas"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: palette mille couleur   Jeu 2 Avr 2015 - 9:01

et bien sûr les data peuvent être intégrées directement dans le source à la place de l'include. C'est un choix et Ygeronimi les mets en include pour garder un programme court et lisible.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: Re   Jeu 2 Avr 2015 - 10:07

La moulinette est modifiable à souhait.
Au lieu de créer un fichier, on peut copier dans le presse papier
pour ensuite coller dans le source...
Wink

Maintenant, il faut prendre en considération la taille de l' image et la place que peuvent
prendre les lignes de "Data". Là l' image fait 170 x 128 soit 21760 pixels...
...cela commence à faire.  Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 536
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: palette mille couleur   Jeu 2 Avr 2015 - 19:17

merci Ygeronimi
juste si tu pouvais me passer le data car là il n'y est pas.
pour la réponse a ta question il faut voir avec Jicehel c'est son idée  scratch

maintenant, il me reste une sacrée question...
pourquoi un fichier BMP que je crée ou modifie avec Panoramic n'est plus reconnue comme texture pour la 3D
au départ, c'est un fichier généré par Wings3D mais il est très facile de le modifier avec paint ou autre.
Bien sur mon idée est de pouvoir automatiser ces modifications, mais là...

ps
une sensation me fait penser a un erreur de taille d'image
comment peut on mesurer avec précision c'elle ci?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: palette mille couleur   Jeu 2 Avr 2015 - 20:31

Code:
SUB DimBmp(f$)
' Dimensions d'une image bmp -> rs_wi%, rs_hi% (largeur, hauteur en pixels)
DIM_LOCAL rs_v%(8)
IF VARIABLE("rs_wi%") = 0 THEN DIM rs_wi%
IF VARIABLE("rs_hi%") = 0 THEN DIM rs_hi%
FILEBIN_OPEN_READ 9, f$
    FILEBIN_POSITION 9, 18: FILEBIN_BLOCK_READ 9,8,rs_v%(0)
    rs_wi% = rs_v%(0)+256*rs_v%(1)+65536*rs_v%(2)+16777216*rs_v%(3)
    rs_hi% = rs_v%(4)+256*rs_v%(5)+65536*rs_v%(6)+16777216*rs_v%(7)
FILEBIN_CLOSE 9
END_SUB
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 536
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: palette mille couleur   Jeu 2 Avr 2015 - 21:53

@ Jl35
peut tu me dire si il faut une boucle car je n'obtient que le form 0
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: palette mille couleur   Jeu 2 Avr 2015 - 22:12

Bonsoir mindstorm, je ne comprends pas bien ta question.
C'est une sub qui renvoie les dimensions d'une image bmp, donnée par son nom de fichier, dans deux variables, donc complètement indépendante du contexte panoramic.
Je précise bien que ça ne donne pas les dimensions d'une image affichée dans un Form panoramic, mais d'un fichier image bmp situé sur le disque.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 536
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: palette mille couleur   Jeu 2 Avr 2015 - 22:26

ça y est merci jl35 Very Happy
1 pixel d'erreur et tout est parterre

j'ai bêtement cru qu' il scannait l'image, mais bien sur l'information est inscrite dans le fichier lui même.


je vais pouvoir modifier les textures de mes objets 3DS beaucoup plus facilement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Ven 3 Avr 2015 - 1:44

Le beurre, l' argent du beurre, le pot au lait est  !
Je ne livrerai pas la crémière... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: palette mille couleur   Ven 3 Avr 2015 - 2:20

La crémière c’est à mon compte.
Je vous la livre :
Ajoutez ceci (avant la SUB)
Code:
 Read_palette_bmp(0)
End

Bon, je pense que le DISPLAY n'est pas nécessaire.


lol! lol! lol! lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Yannick

avatar

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

MessageSujet: re   Ven 3 Avr 2015 - 3:45

Le display évite un scintillement...

A quel ligne tu places la tienne ?...
Je ne vois rien si ce n' est un rechargement du form 0...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: palette mille couleur   Ven 3 Avr 2015 - 4:46

ygeronimi a écrit:
Le display évite un scintillement...
Soit dans un FORM ou dans un PICTURE, je ne vois pas de scintillement chez moi.

ygeronimi a écrit:
A quel ligne tu places la tienne ?...
La mienne ? c’est quoi la mienne ? Rolling Eyes

Bof, Je pinaille, sans plus.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Yannick

avatar

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

MessageSujet: re   Ven 3 Avr 2015 - 5:06

Je parlais de ligne... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 536
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: palette mille couleur   Sam 4 Avr 2015 - 22:25

bravo a tous
je ne pensais vraiment pas occuper autant de monde avec un si petit programme.
Finalement il n'était pas si simple que cela et grâce a vous, j'ai entrouvertes des portes qui me laissent entrevoir encore quelques années de travail cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

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

MessageSujet: Re: palette mille couleur   Mar 7 Avr 2015 - 18:33

salut à tous,

@mindstorm
la sub trace() peut être grandement optimisé à mon avis, car elle effectue des calculs pour afficher 32640 pixels(255*128) mais nous n'en voyons que 3328(26*128).
Principe de la sub:
Code:

dim i,n_i,y,X
n_i=0

     for i=n_i to (n_i+254)
        for y=0 to 127
            X=5+(i/10)
            print X;"  ";y
        next y
        print
     next i

Dans le cas de "2d_line X,y,X,y", X vaut 5, 5.1,5.2,etc... Mais les coordonnées de pixels sont des valeurs entières, donc afficher un pixel en "2d_line 5.3,7,5.3,7" par exemple, n'est pas pertinent.
Pourquoi 3328 pixels visible?
Et bien (i/10) va varier de 0 à 25(en valeurs entières); donc 26 valeurs multiplié par les 128 de la hauteur y, est égal à 3328!

Environ 10 fois moins de pixel et 10 fois moins de calcul devrait sérieusement booster la vitesse d'affichage...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: palette mille couleur   

Revenir en haut Aller en bas
 
palette mille couleur
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
» Couleur et police...
» [SUGGESTION] Changer la couleur du groupe "membres" & idée d'un nouveau groupe
» Changer la couleur d'un progressbar ?

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: