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
» Mais qui a le focus ?
par Klaus Aujourd'hui à 11:48

» Mac OS X sierra
par Irikte Aujourd'hui à 11:38

» Concours de Morpions
par Froggy One Aujourd'hui à 10:29

» Synedit Parameters
par Jean Claude Aujourd'hui à 10:08

» Bienvenue à Irikte
par UltraVox Aujourd'hui à 10:04

» Recherche de traductions de mots (@Klaus).
par Klaus Aujourd'hui à 9:44

» Version instantanée V 0.9.28i10 du 24/06/2017
par Yannick Hier à 22:52

» Panoramic et ses curiosités
par Jack Hier à 8:15

» Utilitaire de suppression de fichiers
par Yannick Ven 23 Juin 2017 - 23:03

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Jeu 22 Juin 2017 - 21:16

» Compilateur FBPano
par jean_debord Jeu 22 Juin 2017 - 9:56

» Bienvenue à Virtualalan !
par UltraVox Jeu 22 Juin 2017 - 9:18

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
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 : 530
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 : 5838
Age : 44
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 : 4937
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 : 530
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 : 5385
Age : 66
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 : 530
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 : 530
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 : 5838
Age : 44
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 : 4937
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 : 530
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 : 7839
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 : 5838
Age : 44
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 : 7839
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 : 530
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 : 5882
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 : 530
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 : 5882
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 : 530
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 : 7839
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 : 5385
Age : 66
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 : 7839
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 : 5385
Age : 66
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 : 7839
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 : 530
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 : 451
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
-
» code de la palette de couleur
» Palette de couleur donner par EA sous IE transforme le héxadécimal en RGB non complet.
» Remplacer la palette de couleur par un sélectionneur
» [Résolu] Palette des couleurs réservée aux admis
» Personnaliser le choix des couleurs par défaut dans les messages - phpBB2 | punBB

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