From c1af20bcb72916388a75c72591b5d79be0743999 Mon Sep 17 00:00:00 2001 From: Brett Harrell Date: Sat, 12 Jul 2014 22:44:33 +0000 Subject: [PATCH] Add lower case font characters. This extends the new font to include lower case as well as upper case characters. Add a couple of kerning rules for the lower case characters so that they render nicely, too. --- graphics/text/config.py | 6 ++++++ .../text/font/denex_bigfont_imagetool.pcx | Bin 14622 -> 19785 bytes graphics/text/fontchars/font047.gif | Bin 523 -> 325 bytes graphics/text/fontchars/font092.gif | Bin 520 -> 327 bytes graphics/text/fontchars/font097.gif | Bin 0 -> 353 bytes graphics/text/fontchars/font098.gif | Bin 0 -> 348 bytes graphics/text/fontchars/font099.gif | Bin 0 -> 331 bytes graphics/text/fontchars/font100.gif | Bin 0 -> 356 bytes graphics/text/fontchars/font101.gif | Bin 0 -> 329 bytes graphics/text/fontchars/font102.gif | Bin 0 -> 329 bytes graphics/text/fontchars/font103.gif | Bin 0 -> 345 bytes graphics/text/fontchars/font104.gif | Bin 0 -> 352 bytes graphics/text/fontchars/font105.gif | Bin 0 -> 211 bytes graphics/text/fontchars/font106.gif | Bin 0 -> 332 bytes graphics/text/fontchars/font107.gif | Bin 0 -> 358 bytes graphics/text/fontchars/font108.gif | Bin 0 -> 312 bytes graphics/text/fontchars/font109.gif | Bin 0 -> 370 bytes graphics/text/fontchars/font110.gif | Bin 0 -> 360 bytes graphics/text/fontchars/font111.gif | Bin 0 -> 336 bytes graphics/text/fontchars/font112.gif | Bin 0 -> 329 bytes graphics/text/fontchars/font113.gif | Bin 0 -> 343 bytes graphics/text/fontchars/font114.gif | Bin 0 -> 336 bytes graphics/text/fontchars/font115.gif | Bin 0 -> 357 bytes graphics/text/fontchars/font116.gif | Bin 0 -> 328 bytes graphics/text/fontchars/font117.gif | Bin 0 -> 351 bytes graphics/text/fontchars/font118.gif | Bin 0 -> 356 bytes graphics/text/fontchars/font119.gif | Bin 0 -> 362 bytes graphics/text/fontchars/font120.gif | Bin 0 -> 351 bytes graphics/text/fontchars/font121.gif | Bin 0 -> 326 bytes graphics/text/fontchars/font122.gif | Bin 0 -> 335 bytes graphics/text/fontchars/font123.gif | Bin 0 -> 221 bytes graphics/text/fontchars/font124.gif | Bin 0 -> 200 bytes graphics/text/fontchars/font125.gif | Bin 0 -> 330 bytes graphics/text/fontchars/font126.gif | Bin 0 -> 204 bytes graphics/text/textgen | 4 ++-- 35 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 graphics/text/fontchars/font097.gif create mode 100644 graphics/text/fontchars/font098.gif create mode 100644 graphics/text/fontchars/font099.gif create mode 100644 graphics/text/fontchars/font100.gif create mode 100644 graphics/text/fontchars/font101.gif create mode 100644 graphics/text/fontchars/font102.gif create mode 100644 graphics/text/fontchars/font103.gif create mode 100644 graphics/text/fontchars/font104.gif create mode 100644 graphics/text/fontchars/font105.gif create mode 100644 graphics/text/fontchars/font106.gif create mode 100644 graphics/text/fontchars/font107.gif create mode 100644 graphics/text/fontchars/font108.gif create mode 100644 graphics/text/fontchars/font109.gif create mode 100644 graphics/text/fontchars/font110.gif create mode 100644 graphics/text/fontchars/font111.gif create mode 100644 graphics/text/fontchars/font112.gif create mode 100644 graphics/text/fontchars/font113.gif create mode 100644 graphics/text/fontchars/font114.gif create mode 100644 graphics/text/fontchars/font115.gif create mode 100644 graphics/text/fontchars/font116.gif create mode 100644 graphics/text/fontchars/font117.gif create mode 100644 graphics/text/fontchars/font118.gif create mode 100644 graphics/text/fontchars/font119.gif create mode 100644 graphics/text/fontchars/font120.gif create mode 100644 graphics/text/fontchars/font121.gif create mode 100644 graphics/text/fontchars/font122.gif create mode 100644 graphics/text/fontchars/font123.gif create mode 100644 graphics/text/fontchars/font124.gif create mode 100644 graphics/text/fontchars/font125.gif create mode 100644 graphics/text/fontchars/font126.gif diff --git a/graphics/text/config.py b/graphics/text/config.py index 2c7ddfc9..fa6ac55e 100644 --- a/graphics/text/config.py +++ b/graphics/text/config.py @@ -40,9 +40,12 @@ import re # visually appealing. This is highly dependent on the font graphics, # and if the font is changed this probably needs to be redone. +# TODO: Add more rule for lower-case characters. + FONT_KERNING_RULES = { # Right character fits under left character: r'[TY][07ACOSZ]': -2, + r'[TYty][a]': -2, r'P[A]': -3, r'P[7]': -2, r'P[Z]': -1, @@ -61,6 +64,9 @@ FONT_KERNING_RULES = { r'Q[Y]': -1, r'A[TYV]': -2, r'A[GC]': -1, + r'a[TYty]': -2, + r'a[vV]': -2, + r'a[g]': -1, # Fits into "hole" in left character: r'[BCX8][0CGOQ]': -2, diff --git a/graphics/text/font/denex_bigfont_imagetool.pcx b/graphics/text/font/denex_bigfont_imagetool.pcx index 485b7d47ba69035f2ce3f188d61143636c584db1..0ac5605e2fc1883e9d7706caa3f65ed03879ae26 100644 GIT binary patch delta 6577 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 diff --git a/graphics/text/fontchars/font047.gif b/graphics/text/fontchars/font047.gif index ccc7c8065c3a14f5d5034609fa49cc9442083df0..e85126b3bbb9cc1ab80a8b6eb6c1b3a91ec736c2 100644 GIT binary patch literal 325 zcmZ?wbhEHbgwwH`ugVP=GNBM&d$!>-roNH z{^8-_$;rvt+1dH|`Q_#1_4W15&CQc1Po6$~`uzFxmoHzwdiCnfn>TOYzJ34x{l||V zKYjZ2<;$0E-@bkS{{83Apa1{=A7m2^fZ|UUMg|6D1|5*uAU`p%B^{U;5OFfaVEUPW z3_(lR8BaZwxEdWMr7}Nx876hQ<@pZ>9qze)X@@LyIOm*hHH=^~n9=oEVMDZvAS*+e skZ>wfvonLNvX809GAVCjbBd literal 523 zcmZ?wbhEHb1dNP~oSd9IJUjvd0$#g&zn zRaI5h)zvjMHTCuN4Gj&Ajg6BgO`1G;^3C-XE?v5E z<;sm4H}2iL_y7NYkROIDQ2fcl$iU#ppab#&C{7sIGa4M5)bv`l^qL$s9C{qIJLP-r z1<@M1^_Xhe0%@^ diff --git a/graphics/text/fontchars/font092.gif b/graphics/text/fontchars/font092.gif index d430a326f6700eb84449c8feb4b96254f6e36e0e..e77e0fa4a7e515ab76c4d6d1be7c3635d9dcf103 100644 GIT binary patch literal 327 zcmZ?wbhEHbiYWn=H}+s*4EC>&hGB+-rnB+{{G?N z;mOI#+1c6o`T6DL<@NRT&CSi--QCltPoF=3{_^F^SFc{ZdGqG|`}ZF|e*E<5)0Zz_ zzJLGz`}gnv|NjrNfR;e3Mm1g@uKcm6cUhRn^tiH8nMjjg4(>ZQb47y}iBt{ryv?PMtMt)|@$W z=FXivfByW13l}b4ym;BNWh+*!ShHr$x^?R|Y}l}IxzkdJz{r~^}gS;^`f#OdVMg|5a1|5*|L2<&sp4y;e-fU#<)UNN?l-Pu_VL(QTdS^Y=d(4RzwnkQ-)`|n25SI$p>yT{ diff --git a/graphics/text/fontchars/font097.gif b/graphics/text/fontchars/font097.gif new file mode 100644 index 0000000000000000000000000000000000000000..7ca4657eaeed52fcab90a4fde5154923a7e199a3 GIT binary patch literal 353 zcmZ?wbhEHbTOYzJ34x{l||V zKYjZ2<;$1v-@pI-`SbVh-~a#rA7m2^fZ|UUMg|6D1|5*uAU`p%)g72v;Gx53IJ2iP zLeNtG^u;5ZT{_}Q6P7C%N(e6WS*m0y!YS9^A}~>h=LqBTOA;cBlp{Q7` TgqWz{Y)lq|_4Uoo&E4JIlP6D}K7IQ9`SX`AU%qdl)sZ{NOs z|Ni~Qj~_pM`t;??mv7&`egFRb=g*(NfB*jf|NkH>sRtB)vM@3*s4?h(j0E|KfvwVE za)F0Qtl5btX&suD^HqBam}>jfmbGzgIjCSii|f&an;txE$5@K>GW7ZyPYP6W_%v~+ zDr&?SF*-2{3$iov35z$XG4k`VGPZNK_3&~|=wY3}$RsZ<&dQ{$AR@@jrX(vREvKX; Y!d5JoFCif*&f&z)$-Z}=vm=8w0F)zKng9R* literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font099.gif b/graphics/text/fontchars/font099.gif new file mode 100644 index 0000000000000000000000000000000000000000..d83d6abe224696d542af6cf0c0cf0106c94976df GIT binary patch literal 331 zcmZ?wbhEHbmGD_07%A-QC@jCr_R}efs?Q^OrAQzIyfQ&6_uG-@g6$@#B{-U%q|& z_Wk?!-@kwV|NnoG1+)Z;KUo+V7!(+EK$d{~#K4x}FrmOhr%6kk=U9_sm|eh&RE|z3 zO94gZS2tr+_}Mrfek?E$I{a{fMuEkwuEh=_83vQv7I1X9$Z#;!FmUj2F*ms|Ffg;R oGIn=6G4l$FiVDj~lsK{R3wy?~xo`*wdkAs3a%5+7J2F@U0Oavat^fc4 literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font100.gif b/graphics/text/fontchars/font100.gif new file mode 100644 index 0000000000000000000000000000000000000000..a563ab636515a14befca9c124b20445b82faa9a9 GIT binary patch literal 356 zcmZ?wbhEHblq|_4Uoo&E4JIlP6D}K7IQ9`SX`AU%qdl)sZ{NOs z|Ni}_PoKVg`SR`Cx9{J-|NQy$_wV2T|NkFkA60?kPZmZ722}*`&6o)FCoP@ZgOh`?Rj4v#ijb27Q=x_0YgdH_845h?jn$0Y w+-%JqoSZC79gNHs;-WHg^5SgDY=WYavQwu!aR|+kloV!n=4f2a?Z{va0OR;mo&W#< literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font102.gif b/graphics/text/fontchars/font102.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3b6bbc8ed830c53063f5dce570156bdc56acd24 GIT binary patch literal 329 zcmZ?wbhEHblq|_4Uoo&E4JIlP6D}KY#x6<;z#EUcGtq=Iz_J@87@w z`0?YXPoKVh`}Xta&)>g)|NsAgkWDlIia%Kx85ooqbUowUWo*)N$f`!J@nvUJayz@gO8RdHzT6} vAA4qYGb1-QTUS3LFBcP|t1`2UlmPQIHhG!oxpI<19MjmjfB`nmk--`OV;xhV literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font103.gif b/graphics/text/fontchars/font103.gif new file mode 100644 index 0000000000000000000000000000000000000000..3dc04a9e4535f27b87dbc582daf3a3b416edcee8 GIT binary patch literal 345 zcmZ?wbhEHbiYWn=H}+s*4EC>&hGB+-rnB+{{G?N z;nC62+1c6U<>mGD_07%A-QC@jCr_R}efs?Q^OrAQzIyfQ&6_uG-@bkS{{6>~AHRJ0 z^6lHVpFe;8|NnoG1+)Z;KUo+V7!(+EK$d{~#K2bTFrmPMCD1^E`&dUvnB4{L7m}?G z)&dj09&R+Sk>O(g!fVVU)pMA^DCY`WQ|l##296nA%?b-#gcucS>zNn@_#2p*L9Zv$3)7;m+mU J!|BLi4FCc)Pz?Y8 literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font105.gif b/graphics/text/fontchars/font105.gif new file mode 100644 index 0000000000000000000000000000000000000000..67d4a184c00f7c99452fa6144f349aabfa37b74d GIT binary patch literal 211 zcmV;^04)DUNk%w1VF>^a0Q4RJ000072L}@q6B`>FCnqN_FE2MYH#<8!LqkJLOG{T* zS8Ho)Z*OmRcXxk(e}jXAi;IhslarU1m!F@Xr>Cc@tE;oKv$wamzrVlB%gfW#)7#tI z=jZ3|@9+Qr{{R30A^8LW0018VEC2ui00{sO000G0;3tlwWSuBwOH4Z%Bjy06R0|R0se7 literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font106.gif b/graphics/text/fontchars/font106.gif new file mode 100644 index 0000000000000000000000000000000000000000..d28f328bc12f208a0c2f409b3f0491a95e65861e GIT binary patch literal 332 zcmZ?wbhEHbgwwH`ugVP=GNBM&d$#6?(W{+ z-v0jn;o;%Y(b37t$=TW2`T6mGD_07%A-QC@jCr_R}efs?Q^OrAQzIyfQ&6_uG z-@bkS{{6>~A3uHi^ySN!Z{NQC{Q2|$|Nn#RqbgAR$->CMpvs^FG8N<}2DZ!tlL|a^ z5-m=s1RXv(VP3$CHlf}&4PM{0!#^7wqgwwH`ugVP=GNBM&d$#6?(Y8n z{^8-_(b3V#$;sK-+4=eT<>lq|_4Uoo&E4JIlP6D}K7IQ9`SX`AU%qdl)sZ{NOs z|Ni~Qj~_pM`t;??mv7&`egFRb=g*(NfB*jf|NkH>sRtB)vM@3*s4?h(j0E|KfvwqL za)F0PoSF1lfyIt#21{QYW$B%!H95m0XyY`u$!;7=3TwQU_%BOzDlwUUntjVcl@?Z? z)}V{dTrSMK0z&*eEUpX!ZCor2E(|q%oSdvo{Z0%*!aVG(eGD^LiYWn=H}+s*4EC>&hGB+-rnBf;o;HI z(b?JA`T6mGD_07%A-QC@jCr_R}efs?Q^OrAQzIyfQ&6_uG-@bkS{{6>~AHRJ0 z^6lHV@87@w|NnoG1+)Z;KUo+V7!(+EK$d{~#K0EnFrmO>NrHhGk6_483w`g7&CHQ{ z7BZ)jG9Ao#yqR3RBe;|VS`s8POt=`oB{8Ne3$!%U*>`woh>8eF%BHgNi+D=N$g(=I U3)G8>iL*Piv(22z<;Y+S0KJPxMF0Q* literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font109.gif b/graphics/text/fontchars/font109.gif new file mode 100644 index 0000000000000000000000000000000000000000..06b6d9042d3499d565c876a747b1f6b7406cc4ec GIT binary patch literal 370 zcmZ?wbhEHbgwwH`ugVP=GNBM&d$#6?(W{+ z-r?cl$;rvt+1dH|`Q_#1_4W15&CT82-IFIzo<4p0{Q2{jFJHcT_3F)=H*ep*egFRb zr%#{0eEIV2+qa)TfBydc`~Uy{gKVM!Q2fcl$iSe?paU`+)GeU3Dy^k=m4?#AF1tyBN-A8ndh-G}o@_MXdfA_z{PDz0K9)a+4+dy>ONa^Q zGy4b%@CgX-Kmu`+VgwwH`ugVP=GNBM&d$#6?(W{+ z-r?cl(b3V#$;sK-+4=eT<>lq|_4Uoo&E4JIlP6D}K7IQ9`SX`AU%qdl)sZ{NOs z|Ni~Qj~_pM`t;??mv7&`egFRb=g*(NfB*jf|NkH>sRtB)vM@3*s4?h(j0E|KfvweH za)F1=EWJbA?vo$#7^?PgMrozC^k!)~t?W`$V_E4Ul&G}y;?h8Ysg5!}?O!?-ZY}V8 z7PK?PD2GW#Qb>?bP)JyqiiYWn=H}+s*4EC>&hGB+-rnBf;o;HI z(aFil+1c6o`T6DL<@NRT&CSi--QANXPo6$~`uzFxmoHzwdiCnfn>TOYzWw;|gwwH`ugVP=GNBM&d$#6?(W{+ z-v0jn;o;%Y(b37t$=TW2`T6mGD_07%A-QC@jCr_R}efs?Q^OrAQzIyfQ&6_uG z-@bkS{{5#S#K4y3FsZ=fNI~E6 zvj)alR>n?Umo*nnkWsvF@$thHnGXK+q!|%LGg=&*3k3v3x{n%c2)Xn8RI|VW7a9IC zehx-PL4F<{L2foi6-GX84wjle73Nq`78ezE1vyc+IqXTooO3uPaq!G>WUvMR?Eh4s literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font113.gif b/graphics/text/fontchars/font113.gif new file mode 100644 index 0000000000000000000000000000000000000000..98bf9b5ab5169a974f69002a37103d739d15222e GIT binary patch literal 343 zcmZ?wbhEHblq|_4Uoo&E4JIlP6D}K7IQ9`SX`AU%qdl)s@87@w z`0?YHFJHcW`}Y0&_n$w1{{H>@|NsAkETcA1{K>+|z@WmQ12P!oCkD0>he-tY2CDbK^&mO0yZq1Qdm8Ev6ehb}{urfe_)iFI-kcW@y1d9lq|_4Uoo&E4JIlP6D}K7IQ9`SVw=UcGtq=Iz_J@87@w z^y$-=FJHcY|Nism&;S4b53+_fK=CIFBLjmHgAT}eke?XXavdfXc|{O=N2>}#6a9du{e{5Z?e}?g%tsJ(z}ucW;jUkmGQANG79i< zao4jkDlzhMaZKuQVu~#i6&GbzVw01ZJu`=mElGrxJxzpzor|5_X&pPaBZD;nkF!zb literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font115.gif b/graphics/text/fontchars/font115.gif new file mode 100644 index 0000000000000000000000000000000000000000..babb8544dae998fb99c9cb2323dad1b4e9449f52 GIT binary patch literal 357 zcmZ?wbhEHbgwwH`ugVP=GNBM&d$#6?(Y8n z{^8-_(b3V#$;sK-+4=eT<>lq|_4VD|-IFIzo<4p0{Q2{jFJHcT_3F)=H*ep*egFRb z$B!SseEIV2+qduEzyJLC^Y`!H|Ns9VWEr)A;!hSv1_l)d9gx8wKQXX1IZP_>(BadU z>iYWn=H}+s*4EC>&febM;o;%Y(b3u2 z+4=eT<>lq|_4Uoo&E4JIlP6D}K7IQ9`SX`AU%qdl)sZ{NOs|Ni~Qj~_pM`t;?? zmv7&`egFRb=g*)2|NkFk2hD)uPZmZ721N!PkPRR|F|ef`m{8!M!=>+`QaEW%!@Q|a zT0gCcnm?_*{qWx!3+dixpFCo;L{6s~&vlXEVm{Jhq;SYMv|XxuCxdrdsk64r;8(lH2{q!Rt5k7 literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font117.gif b/graphics/text/fontchars/font117.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d67f0108fdebc64499a3302d75d79fedfe239da GIT binary patch literal 351 zcmZ?wbhEHbiYWn=H}+s*4EC>&hGB+-rnB+{{G?N z;mOI#+1c6o`T6DL<@NRT&CSi--QANXPo6$~`uzFxmoHzwdiCnfn>X*@zyJ90Ne^XTe literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font118.gif b/graphics/text/fontchars/font118.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2daa1d7547074cea9c594c8ce955cc144fb1946 GIT binary patch literal 356 zcmZ?wbhEHbgwwH`ugVP=GNBM&d$#6?(W{+ z-v0jn;o;%Y(b37t$=TW2`T6mGD_07%A-QC@jCr_R}efs?Q^OrAQzIyfQ&6_uG z-@bkS{{6>~A3uHi^ySN!Z{NQC{Q2|$|Nn#RqbgAR$->CMpvs^FG8N<}2DZinlL|a! zk}N!UmzVey87TOYzJ34x{l||V zKYjZ2<;$0E-@bkS{{83Apa1{=A7m2^fZ|UUMg|6D1|5*uAU`p%wI7&R;2{%cG}HT7 zM@W=Qz?lz{QyuIlEesWzWZ*Q9EBVBa3Zouoc4kYStCA-d7R)r^SnOmMTqwdKD$L2m zD#^qmDa^&pC?vqaBp}AuAlq|_4Uoo&E4JI)2C0LKY#x6<;z#EUcGtq=Iz_JA3uKl z^y$-=FJHcW`}Y0&_n$w1{{H>@|NsAkETcA1{K>+|z@WmQ12P!oCkD0}he-t5q zJ;ypi;@mFqyp){l;4UP@`fH|%i(Fsx7l~FqUT2|T&kj3D&ZdwC4-K(%tVt4Fe0(Az z{7kM)-28kDt_%Xg+?>qaP7K`K?5wPlx|wCA#Flq|_4Uoo&E4JIlP6D}K7IQ9`SX`AU%qdl)sZ{NOs|Ni}_PoKVg`SR`C zx1T?M{{H>@|NsAkETAP&{K>+|z@WgO1F{6iYWn=H}+s*4EC>&hGB+-rnB+{{G?N z;mOI#+1c6o`T6DL<@NRT-QC@jCr_R}efs?Q^OrAQzIyfQ&6_uG-@bkS{{6>~A3uHi z^ySN!Z{NOs|Ni~w&!4}4|Nj5~{~()a02F_+FfuSGGw6WK2KkABE$6_*0uPZOgA+@H zf(0$-U+`w}5_J{x={nN%utJ}g`H+K#jDm>Qkwk@gmj&1wH8y1E@EvL3a0vUvP$McP zl+)lq|_4Uoo&E4JIlP6D}K7IQ9`SX`AU%qdl)s@87@w^y$-=FJHcW`}Xta z&)>g)|NsAgpy7%?Sr{1@pbBrG&DV47xA Va#Eu}kUSfIK3hX$CZ{5UH2}=KQOy7V literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font124.gif b/graphics/text/fontchars/font124.gif new file mode 100644 index 0000000000000000000000000000000000000000..7d756eb310bf1de5bb213afe50b928e4884e316d GIT binary patch literal 200 zcmZ?wbhEHbWM|-K_#({!1nlhW!otGR($ebc>iYWn=H}+s*4EC>&hGB+-rnBf;o;HI z(aFil+1c6o`T6DL<@NRT-QC@jCr_R}efs?Q^H;B4y?OKI{rmSHKYsl5>C^xJ{|6Zg z1ByRc7#SF37<51aAUhdYT@}iEm5+x;N6ie}<(f7*Gdx-9(if3(6J3_e3PO$?K8?rq q8e()&9rW^C^KVA1N$TC_v*9+w{ngEat7pFem2 literal 0 HcmV?d00001 diff --git a/graphics/text/fontchars/font125.gif b/graphics/text/fontchars/font125.gif new file mode 100644 index 0000000000000000000000000000000000000000..d725a1c255dd32aed79a0998d2b1fa55fdb5b153 GIT binary patch literal 330 zcmZ?wbhEHbgxLX`sU{5*4Ea}&d%=c?%v+s{{H^a(b37t z$=TW2`T6mGD_07%A-QC@jCr_R}efs?Q^OrAQzIyfQ&6_uG-@g6$@#B{-U%q|& z_Wk?!pFe;8{{8#^|Nn#Rpczp7$->CMpva&DvH|2L2DWquF1BJ$$$rrZn~F@FrYP_) zS$QMJWJcGchz1u8QLjesL>rY!2OoF{m?-qSyIkNg5$ihIB**c9n~jZ8k&%asi@mA2 qMNV2mgtuFfNnS=;h_}RzMNUp!h{cyhT1y1nlhW+}zy4!ot$h(#p!p>gwwH`ugVP=FZN}{{H^q;o-^2 z$=TW2`T6mGD_1)dw)2C0LKY#x6<;z#EUcGtq=KcHkpFVy1^5x6-@85s^{Q3L$ z@Bjb*4>Fp8LGdRGBLjmRgARxTvXg<;bAfu$#i9-ktI{{iD!7~7a&lGfmg&vfR(ODS z;dVnA72$4$=A9vG!d(ZF3mo`ZE**Zzuz-j8{J}({ieQbFpFMfI?|;})<2SvXfx#L8 Dy=G3$ literal 0 HcmV?d00001 diff --git a/graphics/text/textgen b/graphics/text/textgen index bfa67550..e0e34c54 100755 --- a/graphics/text/textgen +++ b/graphics/text/textgen @@ -55,10 +55,10 @@ BACKGROUND_COLOR = '#00ffff' # Height of font in pixels. FONT_HEIGHT = 15 -FONT_LC_HEIGHT = 12 +FONT_LC_HEIGHT = 15 #12 # If true, the font only has uppercase characters. -UPPERCASE_FONT = True +UPPERCASE_FONT = False # Width of a space character in pixels. SPACE_WIDTH = 7