Procedure 'TextGradient()' texte en dégradé sur le fofo v3

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Procedure 'TextGradient()' texte en dégradé sur le fofo v3

Message par Ar-S »

Voilà, je voulais m'amuser avec ma signature du forum et du coup j'ai fait cette petite procédure.Y 'a surement plus simple mais j'avais le goût de me faire ça cette aprem, je ne me suis pas cassé la nenette.

-Informations de versions-

V3 Création d'une liste avec les valeurs couleur pour un meilleur rendu
V2 ajout des dégradés vers jaune et magenta
V1 gestion du RVB (RGB)

Code : Tout sélectionner


Procedure.s TextGradient(messageaclolorer$,RGBchoice$="B") 
  
  ; Par Ar-S / oct 2011
  ; V3 Création d'une liste avec les valeurs couleur pour un meilleur rendu
  ; V2 ajout des dégradés vers jaune et magenta
  ; V1 gestion du RVB (RGB)
  
  ; RGBchoice$ - B by default (blue)
  ; Options 
  ;  "R" For red/rouge
  ;  "G"  or "V" For green/vert
  ;  "B" For blue/bleu
  ;  "Y" or "J" for yellow/jaune
  ;  "M" for magenta
  
  ; ex : Result$ = TextGradient(mytext$,"R") ; to make a black to red Gradient text
 
  ; -----------------------------
  ; initialisation
  ARS_TXTcouleur$ = ""
  ARS_Bfin$ = "[/color]"
  ARS_lng.l = Len(messageaclolorer$)
  ARS_GammeCouleur$ = RGBchoice$
  ARS_i = 1
  Global NewList Couleurs.s()
  ; ------------------------------
  
  
  
  
  ; Création de la liste des couleurs de 0 à 255 à 1
  ; la valeur 'step' peut être modifiée
  ; Plus la valeur est grande, plus le dégradé est rapide (pour les textes courts)
  ; Recommandé : 
  ; - textes courts : 3
  ; - texte long : 1

  For i = 0 To 255 Step 3

    L$ = Hex(i,#PB_Byte)
    If Len(L$) < 2
      L$ = "0"+L$
    EndIf

    AddElement(Couleurs())
    Couleurs() = L$
  Next
  
  For j = 254 To 1 Step -3
    
    L$ = Hex(j,#PB_Byte)
    If Len(L$) < 2
      L$ = "0"+L$
    EndIf
    
    AddElement(Couleurs())
    Couleurs() = L$
  Next
  ; -------------------------------
  
  
  
  ; Boucle qui colorise -------
  ResetList(Couleurs())
  CouleurEnCours.l = 0
  ARS_NbrCouleurs.l = ListSize(Couleurs())
  
  For i = 1 To ARS_lng
    
    ; Lecture lettre à lettre
    ARS_Lettre$ = Mid(messageaclolorer$,i,1)
    
    ; Gestion de la couleur
    
    SelectElement(Couleurs(),CouleurEnCours)
     
    ; Formatage des balises bbcodes
    If ARS_GammeCouleur$ = "R" ; Rouge  
      ARS_B1$ = "[color=#"+Couleurs()+"0000]"
      
    ElseIf ARS_GammeCouleur$ = "G" Or ARS_GammeCouleur$ = "V" ; Vert
      ARS_B1$ = "[color=#00"+Couleurs()+"00]"
      
    ElseIf ARS_GammeCouleur$ = "B" ; Bleu
      ARS_B1$ = "[color=#0000"+Couleurs()+"]"
      
    ElseIf ARS_GammeCouleur$ = "Y" Or ARS_GammeCouleur$ = "J"  
      ARS_B1$ = "[color=#"+Couleurs()+Couleurs()+"00]"
      
    ElseIf ARS_GammeCouleur$ = "M"  
      ARS_B1$ = "[color=#"+Couleurs()+"00"+Couleurs()+"]"  
      
    Else
      ; Sinon par defaut on utilise le Bleu
      ARS_B1$ = "[color=#0000"+Couleurs()+"]"
    EndIf
    ; ---------------------
    
    
    ; Affichage du bbcode complet
    ARS_Lettre$ = ARS_B1$+ARS_Lettre$+ARS_Bfin$
    ARS_TXTcouleur$ + ARS_Lettre$
    ; ---------------------
    
    
    CouleurEnCours + 1
    
    If CouleurEnCours = ARS_NbrCouleurs
      CouleurEnCours = 0
    EndIf
    
  Next
  
  If ARS_TXTcouleur$ = ""
    ProcedureReturn "erreur"
  Else
    ProcedureReturn ARS_TXTcouleur$
  EndIf  
  
EndProcedure

; Exemples 

texte$ = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
texte$+Chr(10)+texte$

Result$ = TextGradient(texte$,"B") ; ou TextGradient(texte$) car bleu est la couleur par defaut
SetClipboardText(Result$)
Debug Result$
Dernière modification par Ar-S le lun. 03/oct./2011 13:19, modifié 5 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Procedure 'TextGradient()' : du texte en dégradé sur le

Message par Ar-S »

---- mise à jour V3 ----
Voilà, la version 3, beaucoup plus propre que la précédente du fait de l'utilisation d'une liste précalculée pour créer les dégradés. L'effet est plus propre car le dégradé va maintenant du noir à la couleur et revient vers le noir. J'ai mis à jour le 1er code.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Procedure 'TextGradient()' texte en dégradé sur le fofo

Message par GallyHC »

Bonjour,

Je vais surement l'utiliser pour un autre forum :) devine lol

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Procedure 'TextGradient()' texte en dégradé sur le fofo

Message par Ar-S »

Au hazard, tomtomax ? :mrgreen:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Procedure 'TextGradient()' texte en dégradé sur le fofo

Message par GallyHC »

pt1 tes trop fort je me rend lolllllllllllllllllllll :mrgreen:
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Procedure 'TextGradient()' texte en dégradé sur le fofo

Message par Ar-S »

Je termine une petite appli pour le mettre en paratique simplement.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Procedure 'TextGradient()' texte en dégradé sur le fofo

Message par Kwai chang caine »

Vraiment une super idée 8O
Sur cette même idée, on pourrait faire pleins d'autres choses :roll:

Décidément ARS, y'a pas a dire, mais au niveau des idées, ton cerveau c'est un feu d'artifice :D
Merci de ton partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre