figlet-maison

Du figlet artisanal - retour accueil

git clone git://bebou.netlib.re/figlet-maison

Log | Files | Refs |

bdf2txt (1338B)


      1 dir="${1%.bdf}"
      2 mkdir -p "$dir"
      3 cd $dir
      4 < "../$1" awk '
      5 	# On créé le fichier du caractère en cours de construction
      6 	function printchar(char){
      7 		if (enc<21) next
      8 		printf "création du caractère : %c\n", enc
      9 		# Création du fichier "/.txt" impossible, trouver une solution de contournement
     10 		if(enc!=47) { print char ypad > sprintf("%c.txt", enc) }
     11 	}
     12 	# Le caractère à encoder en décimal
     13 	/^ENCODING/ { enc=$2 }
     14 	# La bounding box et les offsets
     15 	/^BBX/ {
     16 		bbw=$2;bbh=$3;llox=$4;llyx=$5;xpad="";ypad=""
     17 		# Ajouter des caractères au début si offset horizontal
     18 		for(i=0;i<llox;i++){ xpad="."xpad }
     19 		# Afficher des lignes vides à la fin si offset vertical (pour " typiquement)
     20 		for(i=0;i<llyx;i++){
     21 			for(j=0;j<bbw+llox;j++){ ypad=ypad"." }
     22 			ypad=ypad"\n"
     23 		}
     24 	}
     25 	# On commence un nouveau caractère
     26 	/^BITMAP/     { char="" }
     27 	# Affichage des car en bitmap
     28 	/^[0-9A-F]+$/ {
     29 		# Créer la représentation binaire bitmap
     30 		gsub("0","....");gsub("1","...#");gsub("2","..#.")
     31 		gsub("3",".###");gsub("4",".#..");gsub("5",".#.#")
     32 		gsub("6",".##.");gsub("7",".###");gsub("8","#...")
     33 		gsub("9","#..#");gsub("A","#.#.");gsub("B","#.##")
     34 		gsub("C","##..");gsub("D","##.#");gsub("E","###.")
     35 		gsub("F","####")
     36 		# Retirer les 0 inutiles à la fin
     37 		char=char"\n"xpad""substr($0,0,bbw)
     38 	}
     39 	/^ENDCHAR/ { printchar(char) }
     40 '
     41 cd -