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
» Philharmusique
Outil pour écriture sans SCENE2D ou ailleurs Emptypar jjn4 Aujourd'hui à 13:58

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Outil pour écriture sans SCENE2D ou ailleurs Emptypar papydall Hier à 16:57

» PANORAMIC V 1
Outil pour écriture sans SCENE2D ou ailleurs Emptypar papydall Hier à 3:22

» select intégrés [résolu]
Outil pour écriture sans SCENE2D ou ailleurs Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Outil pour écriture sans SCENE2D ou ailleurs Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Outil pour écriture sans SCENE2D ou ailleurs Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Outil pour écriture sans SCENE2D ou ailleurs Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Outil pour écriture sans SCENE2D ou ailleurs Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Outil pour écriture sans SCENE2D ou ailleurs Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Outil pour écriture sans SCENE2D ou ailleurs Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Outil pour écriture sans SCENE2D ou ailleurs Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Outil pour écriture sans SCENE2D ou ailleurs Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Outil pour écriture sans SCENE2D ou ailleurs Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Outil pour écriture sans SCENE2D ou ailleurs Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Outil pour écriture sans SCENE2D ou ailleurs Emptypar jjn4 Ven 26 Avr 2024 - 17:39

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 :
Cartes Pokémon 151 : où trouver le ...
Voir le deal

 

 Outil pour écriture sans SCENE2D ou ailleurs

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


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

Outil pour écriture sans SCENE2D ou ailleurs Empty
MessageSujet: Outil pour écriture sans SCENE2D ou ailleurs   Outil pour écriture sans SCENE2D ou ailleurs EmptyMer 8 Fév 2012 - 18:47

J'ai fait un petit outil pour pouvoir poser des textes transparents dans un SCENE2D.

Pour ce faire, il faut créer un SPRITE dans lequel un charge un fichier BMP contenant le texte écrit, mais sur fond noir, car le noir sert de couleur transparente pour un SPRITE. Mon outil permet donc de constituer un PICTURE à l'écran, avec le texte saisi avec tous ces attributs (police, taille, couleur, gras, italique et sousligné). On peut ensuite le transformer en SPRITE (fond noir) et l'enregistrer dans un fichier BMP.

Pour pouvoir utiliser ce programme aussi ailleurs que pour le monde SCENE2D, un peut aussi choisir la couleur de fond et appliquer ce fond par un autre bouton.

Afin de rester compatible avec les SPRITE, j'ai placé un picture de 200x200 pixels à l'écran. Ceci sont les dimensions maximales d'un SPRITE. Pour un autre usage, il est facile d'adapter le programme à d'autres dimensions.

Voici le code:
Code:
' construire des écritures transparentes
'    pour: SCENE2D

label dessiner, c_font, c_size, c_couleur, gensprite
label c_gras, c_italique, c_sousligne, c_couleur_fond
label genfond, enregistrer

dim fil$, i%, j%, r%, g%, b%, fr%, fg%, fb%, cx%

edit 1 : top 1,10 : left 1,10 : width 1,200
combo 2 : top 2,100 : left 2,250 : font_names_load 2
  text 2,"Arial" : on_click 2,c_font
spin 3 : top 3,100 : left 3,410
  width 3,60 : min 3,4 : max 3,72 : position 3,12
button 4 : top 4,330 : left 4,10 : caption 4,"Dessiner"
alpha 5 : top 5,130 : left 5,230 : caption 5,"R:"
spin 6 : top 6,130 : left 6,250 : width 6,60
  min 6,0 : max 6,255 : position 6,0
alpha 7 : top 7,130 : left 7,320 : caption 7,"G:"
spin 8 : top 8,130 : left 8,340 : width 8,60
  min 8,0 : max 8,255 : position 8,0
alpha 9 : top 9,130 : left 9,410 : caption 9,"B:"
spin 10 : top 10,130 : left 10,430 : width 10,60
  min 10,0 : max 10,255 : position 10,0
button 11 : top 11,330 : left 11,110 : caption 11,"Gén. Sprite"
save_dialog 12 : filter 12,"Fichiers BMP|*.bmp"
check 13 : top 13,160 : left 13,250 : caption 13,"Gras"
check 14 : top 14,160 : left 14,320 : caption 14,"Italique"
check 15 : top 15,160 : left 15,390 : caption 15,"Sousligné"
alpha 16 : top 16,70 : left 16,230 : font_size 16,12 : font_bold 16
  caption 16,"Polices:"
alpha 17 : top 17,220 : left 17,230 : font_size 17,12 : font_bold 17
  caption 17,"Fond:"
alpha 18 : top 18,250 : left 18,230 : caption 18,"R:"
spin 19 : top 19,250 : left 19,250 : width 19,60
  min 19,0 : max 19,255 : position 19,0
alpha 20 : top 20,250 : left 20,320 : caption 20,"G:"
spin 21 : top 21,250 : left 21,340 : width 21,60
  min 21,0 : max 21,255 : position 21,0
alpha 22 : top 22,250 : left 22,410 : caption 22,"B:"
spin 23 : top 23,250 : left 23,430 : width 23,60
  min 23,0 : max 23,255 : position 23,0
button 24 : top 24,330 : left 24,210 : caption 24,"Gén. Fond"
picture 25 : top 25,130 : left 25,510
  width 25,50 : height 25,25
picture 26 : top 26,250 : left 26,510
  width 26,50 : height 26,25
button 27 : top 27,330 : left 27,310 : caption 27,"Enregistrer"

picture 100 : top 100,100 : left 100,10
  width 100,200 : height 100,200 : 2d_target_is 100
image 101 : 2d_image_copy 101,0,0,199,199

fr% = 255 : fg% = 255 : fb% = 255

text 1,text$(2)
font_name 1,text$(2)
font_size 1,position(3)
font_name 100,text$(2)
font_size 100,position(3)
font_color 1,position(6),position(8),position(10)
font_color 100,position(6),position(8),position(10)

print_target_is 100

on_click 2,c_font
on_change 3,c_size
on_click 4,dessiner
on_change 6,c_couleur
on_change 8,c_couleur
on_change 10,c_couleur
on_click 11,gensprite
on_click 13,c_gras
on_click 14,c_italique
on_click 15,c_sousligne
on_change 19,c_couleur_fond
on_change 21,c_couleur_fond
on_change 23,c_couleur_fond
on_click 24,genfond
on_click 27,enregistrer

end

c_font:
  font_name 1,text$(2)
  font_name 100,text$(2)
  return

c_size:
  font_size 1,position(3)
  font_size 100,position(3)
  return

dessiner:
  2d_image_paste 101,0,0
  font_size 100,position(3)
  print_locate 5,5
  print trim$(text$(1))
  return

c_couleur:
  font_color 1,position(6),position(8),position(10)
  font_color 100,position(6),position(8),position(10)
  color 25,position(6),position(8),position(10)
  return
 
gensprite:
  r% = color_pixel_red(100,0,0)
  g% = color_pixel_green(100,0,0)
  b% = color_pixel_blue(100,0,0)
  cx% = (r%*256+g%)*256+b%
  for i%=0 to 199
    for j%=0 to 199
      r% = color_pixel_red(100,i%,j%)
      g% = color_pixel_green(100,i%,j%)
      b% = color_pixel_blue(100,i%,j%)
      if (r%*256+g%)*256+b%=cx% then 2d_point i%,j%
    next j%
    display
  next i%
  return
 
genfond:
  r% = color_pixel_red(100,0,0)
  g% = color_pixel_green(100,0,0)
  b% = color_pixel_blue(100,0,0)
  cx% = (r%*256+g%)*256+b%
  2d_pen_color fr%,fg%,fb%
  for i%=0 to 199
    for j%=0 to 199
      r% = color_pixel_red(100,i%,j%)
      g% = color_pixel_green(100,i%,j%)
      b% = color_pixel_blue(100,i%,j%)
      if (r%*256+g%)*256+b%=cx% then 2d_point i%,j%
    next j%
    display
  next i%
  2d_pen_color 0,0,0
  return

enregistrer:
  fil$ = file_name$(12)
  if fil$="_" then return
  if instr(lower$(fil$),".bmp")<>(len(fil$)-3) then fil$ = fil$ + ".bmp"
  file_save 100,fil$
  return

c_gras:
  if checked(13)=1
    font_bold 1
    font_bold 100
  else
    font_bold_off 1
    font_bold_off 100
  end_if
  return

c_italique:
  if checked(14)=1
    font_italic 1
    font_italic 100
  else
    font_italic_off 1
    font_italic_off 100
  end_if
  return

c_sousligne:
  if checked(15)=1
    font_underline 1
    font_underline 100
  else
    font_underline_off 1
    font_underline_off 100
  end_if
  return
 
c_couleur_fond:
  fr% = position(19)
  fg% = position(21)
  fb% = position(23)
  color 26,fr%,fg%,fb%
  return

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Outil pour écriture sans SCENE2D ou ailleurs Empty
MessageSujet: Re: Outil pour écriture sans SCENE2D ou ailleurs   Outil pour écriture sans SCENE2D ou ailleurs EmptyMer 8 Fév 2012 - 19:38

Impeccable, bravo, vraiment!

J'ai une petite question quand-même, peut-être une casse-tête: j'ai fait un essai, et, par faute de windows, pas la tienne, il reste des traces blanches autour des lettres quand le polis est plus grand que 12. (Windows fait des lettres de la couleur désiréé, mais rajout aussi un peu de relief aux lettres... ce qui donne mal au crane aux graphistes Wink Serait-ce possible d'accorder la sensibilité pour les couleurs pendant la transformation d'une manière ou autre? P.ex. permettre une marge de 10% pour les valeurs R,G et B. (ou ajustable de 1 a 10% selon les besoins.). Si vous êtes trop occupé, vous en faites pas, c'est pas urgent du tout pour moi! J'y pensais juste que sa pourrait servir. Wink
De toute façon, c'est très bien fait!
Revenir en haut Aller en bas
http://lode.weebly.com
Klaus

Klaus


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

Outil pour écriture sans SCENE2D ou ailleurs Empty
MessageSujet: Re: Outil pour écriture sans SCENE2D ou ailleurs   Outil pour écriture sans SCENE2D ou ailleurs EmptyMer 8 Fév 2012 - 21:45

Je vais réfléchir à l'ajout d'un réglage de tolérance.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

Outil pour écriture sans SCENE2D ou ailleurs Empty
MessageSujet: Re: Outil pour écriture sans SCENE2D ou ailleurs   Outil pour écriture sans SCENE2D ou ailleurs EmptyMer 8 Fév 2012 - 23:11

Voilà une nouvelle version. On peut maintenant choisir si l'on veut maintenir les ombres (cas par défaut) ou pas. C'est une case à cocher.
Code:
' construire des écritures transparentes
'    pour: SCENE2D

label dessiner, c_font, c_size, c_couleur, gensprite
label c_gras, c_italique, c_sousligne, c_couleur_fond
label genfond, enregistrer, c_ombre

dim fil$, i%, j%, r%, g%, b%, fr%, fg%, fb%, cx%
dim pr%, pg%, pb%, flag_ombre%

edit 1 : top 1,10 : left 1,10 : width 1,200
combo 2 : top 2,100 : left 2,250 : font_names_load 2
  text 2,"Arial" : on_click 2,c_font
spin 3 : top 3,100 : left 3,410
  width 3,60 : min 3,4 : max 3,72 : position 3,12
button 4 : top 4,330 : left 4,10 : caption 4,"Dessiner"
alpha 5 : top 5,130 : left 5,230 : caption 5,"R:"
spin 6 : top 6,130 : left 6,250 : width 6,60
  min 6,0 : max 6,255 : position 6,0
alpha 7 : top 7,130 : left 7,320 : caption 7,"G:"
spin 8 : top 8,130 : left 8,340 : width 8,60
  min 8,0 : max 8,255 : position 8,0
alpha 9 : top 9,130 : left 9,410 : caption 9,"B:"
spin 10 : top 10,130 : left 10,430 : width 10,60
  min 10,0 : max 10,255 : position 10,0
button 11 : top 11,330 : left 11,110 : caption 11,"Gén. Sprite"
save_dialog 12 : filter 12,"Fichiers BMP|*.bmp"
check 13 : top 13,160 : left 13,250 : caption 13,"Gras"
check 14 : top 14,160 : left 14,320 : caption 14,"Italique"
check 15 : top 15,160 : left 15,390 : caption 15,"Sousligné"
alpha 16 : top 16,70 : left 16,230 : font_size 16,12 : font_bold 16
  caption 16,"Polices:"
alpha 17 : top 17,220 : left 17,230 : font_size 17,12 : font_bold 17
  caption 17,"Fond:"
alpha 18 : top 18,250 : left 18,230 : caption 18,"R:"
spin 19 : top 19,250 : left 19,250 : width 19,60
  min 19,0 : max 19,255 : position 19,0
alpha 20 : top 20,250 : left 20,320 : caption 20,"G:"
spin 21 : top 21,250 : left 21,340 : width 21,60
  min 21,0 : max 21,255 : position 21,0
alpha 22 : top 22,250 : left 22,410 : caption 22,"B:"
spin 23 : top 23,250 : left 23,430 : width 23,60
  min 23,0 : max 23,255 : position 23,0
button 24 : top 24,330 : left 24,210 : caption 24,"Gén. Fond"
picture 25 : top 25,130 : left 25,510
  width 25,50 : height 25,25
picture 26 : top 26,250 : left 26,510
  width 26,50 : height 26,25
button 27 : top 27,330 : left 27,310 : caption 27,"Enregistrer"
check 28 : top 28,280 : left 28,230 : caption 28,"Maintenir ombres"
  mark_on 28

picture 100 : top 100,100 : left 100,10
  width 100,200 : height 100,200 : 2d_target_is 100
image 101 : 2d_image_copy 101,0,0,199,199

fr% = 255 : fg% = 255 : fb% = 255
pr% = 255 : pg% = 255 : pb% = 255
flag_ombre% = 1

text 1,text$(2)
font_name 1,text$(2)
font_size 1,position(3)
font_name 100,text$(2)
font_size 100,position(3)
font_color 1,position(6),position(8),position(10)
font_color 100,position(6),position(8),position(10)

print_target_is 100

on_click 2,c_font
on_change 3,c_size
on_click 4,dessiner
on_change 6,c_couleur
on_change 8,c_couleur
on_change 10,c_couleur
on_click 11,gensprite
on_click 13,c_gras
on_click 14,c_italique
on_click 15,c_sousligne
on_change 19,c_couleur_fond
on_change 21,c_couleur_fond
on_change 23,c_couleur_fond
on_click 24,genfond
on_click 27,enregistrer
on_click 28,c_ombre

end

c_font:
  font_name 1,text$(2)
  font_name 100,text$(2)
  return

c_size:
  font_size 1,position(3)
  font_size 100,position(3)
  return

dessiner:
  2d_image_paste 101,0,0
  font_size 100,position(3)
  print_locate 5,5
  print trim$(text$(1))
  return

c_couleur:
  pr% = position(6) : pg% = position(8) : pb% = position(10)
  font_color 1,pr%, pg%, pb%
  font_color 100,pr%, pg%, pb%
  color 25,pr%, pg%, pb%
  return
 
gensprite:
  r% = color_pixel_red(100,0,0)
  g% = color_pixel_green(100,0,0)
  b% = color_pixel_blue(100,0,0)
  cx% = (r%*256+g%)*256+b%
  for i%=0 to 199
    for j%=0 to 199
      r% = color_pixel_red(100,i%,j%)
      g% = color_pixel_green(100,i%,j%)
      b% = color_pixel_blue(100,i%,j%)
      if flag_ombre%=1
        if (r%*256+g%)*256+b%=cx% then 2d_point i%,j%
      else
        if (r%<>pr%) or (g%<>pg%) or (b%<>pb%) then 2d_point i%,j%
      end_if
    next j%
    display
  next i%
  return
 
genfond:
  r% = color_pixel_red(100,0,0)
  g% = color_pixel_green(100,0,0)
  b% = color_pixel_blue(100,0,0)
  cx% = (r%*256+g%)*256+b%
  2d_pen_color fr%,fg%,fb%
  for i%=0 to 199
    for j%=0 to 199
      r% = color_pixel_red(100,i%,j%)
      g% = color_pixel_green(100,i%,j%)
      b% = color_pixel_blue(100,i%,j%)
      if flag_ombre%)1
        if (r%*256+g%)*256+b%=cx% then 2d_point i%,j%
      else
        if (r%<>pr%) or (g%<>pg%) or (b%<>pb%) then 2d_point i%,j%
      end_if
    next j%
    display
  next i%
  2d_pen_color 0,0,0
  return

enregistrer:
  fil$ = file_name$(12)
  if fil$="_" then return
  if instr(lower$(fil$),".bmp")<>(len(fil$)-3) then fil$ = fil$ + ".bmp"
  file_save 100,fil$
  return

c_gras:
  if checked(13)=1
    font_bold 1
    font_bold 100
  else
    font_bold_off 1
    font_bold_off 100
  end_if
  return

c_italique:
  if checked(14)=1
    font_italic 1
    font_italic 100
  else
    font_italic_off 1
    font_italic_off 100
  end_if
  return

c_sousligne:
  if checked(15)=1
    font_underline 1
    font_underline 100
  else
    font_underline_off 1
    font_underline_off 100
  end_if
  return
 
c_couleur_fond:
  fr% = position(19)
  fg% = position(21)
  fb% = position(23)
  color 26,fr%,fg%,fb%
  return

c_ombre:
  flag_ombre% = checked(28)
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Outil pour écriture sans SCENE2D ou ailleurs Empty
MessageSujet: Re: Outil pour écriture sans SCENE2D ou ailleurs   Outil pour écriture sans SCENE2D ou ailleurs EmptyJeu 9 Fév 2012 - 1:00

Lol, t'est top !!!
Revenir en haut Aller en bas
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Outil pour écriture sans SCENE2D ou ailleurs Empty
MessageSujet: Re: Outil pour écriture sans SCENE2D ou ailleurs   Outil pour écriture sans SCENE2D ou ailleurs EmptyJeu 9 Fév 2012 - 8:13

Wow, Klaus, c'est magnifique, bravo!!!
J'en suis sur que je m'en servirai!
Lode
Revenir en haut Aller en bas
http://lode.weebly.com
Contenu sponsorisé





Outil pour écriture sans SCENE2D ou ailleurs Empty
MessageSujet: Re: Outil pour écriture sans SCENE2D ou ailleurs   Outil pour écriture sans SCENE2D ou ailleurs Empty

Revenir en haut Aller en bas
 
Outil pour écriture sans SCENE2D ou ailleurs
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un petit outil pour les sprites
» Outil interactif pour gérer un fichier ILB
» Outil pour déterminer le nom court d'un fichier
» CryptedText - outil pour crypter des textes à protéger
» Outil ultra-simple pour des captures d'écran

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: