FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
palette mille couleur Emptypar papydall Aujourd'hui à 16:57

» PANORAMIC V 1
palette mille couleur Emptypar papydall Aujourd'hui à 3:22

» select intégrés [résolu]
palette mille couleur Emptypar jjn4 Hier à 17:00

» number_mouse_up
palette mille couleur Emptypar jjn4 Hier à 11:59

» Aide de PANORAMIC
palette mille couleur Emptypar jjn4 Hier à 11:16

» trop de fichiers en cours
palette mille couleur Emptypar lepetitmarocain Hier à 10:43

» Je teste PANORAMIC V 1 beta 1
palette mille couleur Emptypar papydall Hier à 4:17

» bouton dans autre form que 0
palette mille couleur Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
palette mille couleur Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
palette mille couleur Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
palette mille couleur Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
palette mille couleur Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
palette mille couleur Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
palette mille couleur Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
palette mille couleur Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

 

 palette mille couleur

Aller en bas 
+3
Jean Claude
Jicehel
mindstorm
7 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

palette mille couleur Empty
MessageSujet: palette mille couleur   palette mille couleur EmptyLun 30 Mar 2015 - 17: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
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyLun 30 Mar 2015 - 17: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
Jean Claude

Jean Claude


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

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyLun 30 Mar 2015 - 18: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
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyLun 30 Mar 2015 - 18: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
papydall

papydall


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

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyLun 30 Mar 2015 - 19: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
http://papydall-panoramic.forumarabia.com/
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyLun 30 Mar 2015 - 20: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
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyMer 1 Avr 2015 - 19: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
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyMer 1 Avr 2015 - 20: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
Jean Claude

Jean Claude


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

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyMer 1 Avr 2015 - 20:37

Voir aussi la version Bignono, que tu connais Mindstorm.

https://panoramic.1fr1.net/t3620-nouvelle-palette-de-couleurs?highlight=palette

A+
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyMer 1 Avr 2015 - 21: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
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

palette mille couleur Empty
MessageSujet: re   palette mille couleur EmptyJeu 2 Avr 2015 - 5: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
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyJeu 2 Avr 2015 - 8: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
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

palette mille couleur Empty
MessageSujet: Re   palette mille couleur EmptyJeu 2 Avr 2015 - 9: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
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyJeu 2 Avr 2015 - 18: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
JL35




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

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyJeu 2 Avr 2015 - 19: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
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyJeu 2 Avr 2015 - 20: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
JL35




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

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyJeu 2 Avr 2015 - 21: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
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyJeu 2 Avr 2015 - 21: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
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

palette mille couleur Empty
MessageSujet: re   palette mille couleur EmptyVen 3 Avr 2015 - 0: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
papydall

papydall


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

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyVen 3 Avr 2015 - 1: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
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

palette mille couleur Empty
MessageSujet: re   palette mille couleur EmptyVen 3 Avr 2015 - 2: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
papydall

papydall


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

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyVen 3 Avr 2015 - 3: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
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8610
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

palette mille couleur Empty
MessageSujet: re   palette mille couleur EmptyVen 3 Avr 2015 - 4:06

Je parlais de ligne... Laughing
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptySam 4 Avr 2015 - 21: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
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur EmptyMar 7 Avr 2015 - 17: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
Contenu sponsorisé





palette mille couleur Empty
MessageSujet: Re: palette mille couleur   palette mille couleur Empty

Revenir en haut Aller en bas
 
palette mille couleur
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Palette couleur
» Palette de couleur
» Palette de couleurs
» Palette de couleurs
» Palette (une de plus): 16, 48 ou 216 couleurs

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: