Article View: net.micro.mac
Article #199Font Doubler program
From: William Pugh
Date: Thu, 20 Dec 1984 18:19
Date: Thu, 20 Dec 1984 18:19
205 lines
10088 bytes
10088 bytes
The following is a program I wrote which will double any font (subject to the
32K byte size limitation on resources). To use it, you specify the name and
size of a font installed in the system file, and the program will double it and
install the doubled copy in the system file (with a font size equal to twice
the original).
The program uses some fancy tricks to expand the bit map of the font
so that diagonal lines come out correctly, and curves look pretty good. You
may wish to touch up the resulting font with the font editor a bit, but it's
a lot less work than you would have to do if you used the font editor to scale
up a font.
Question: Does anybody out there know how to make the Print manager
print in high-resolution??? Now that I've developed this niffty algorithm,
I'd like to write a program to print MacPaint files in high-resolution,
using my doubling algorithm, as opposed to the MacPaint high-res mode, which
simply prints a block of 4 dots for each dot in the original image.
Inside Mac is very vague on how to do high-res printing (and printing in
general).
Bill Pugh, Cornell Univeristy
(This file must be converted with BinHex.Hex)
#APPL$0000
***COMPRESSED
***RESOURCE FORK
( 0 !6J 4J@ *(
(
(
(
(
(
(
(
( !@ H !! @ @ _/ !J? \0
( %"ITY6_^!A)B -68 O 1 ,HK0/[\J&ZH_JD2
($ZZ /1*@&8$3KH$IJGT $*G+SQ#3T1%/SP _ZF@
(" ?9P T"\ 0J<O/$-/1$4_/ !J:!!^O_6(E\@$0*
( #___]8@"" (%\H2* E* !=A* I(% R& )! '\TX
($C"2,,F39?"E\,D33X! D$ #F< ! @ Z$>9F8F2"1(
(-7"U<,P ^)(4T!K!D);3OK_^"!47$A1A&M((!@B&#H
($A X$@\ .0(9P #E, 9RHB>O]<T\$B"0)& -G%%-&
(&<()8%0 $[Z_\XU@5 3OK_QA6!4 !.^O^^0_(0 $[Z
(/_6+PH@3* J+PRIHR1?(DHF2BA*3G4B7RU/__PM20 $
($* ($!.T4Y>*&X !+G\ &?R+F[__"! 3M1*@&L(
($J!:P $& *2H%L 01(!$@6 .1(%A"D2!3G5$@$[Z
(/_V+@%(1\[ /P<N $A'SL'"P-Y?2$="1]*'3G5*@&L(
($J!:P $& *2H%L 21(!$@6 01(%A#$2 1(%.=42
($[Z__1*@&<Z0D>R@&4.4D=*@&L [CB$[Z__!*1V<L
(.*(+P(D 4*!XXFT@&4$E(!205-';P;BB$[Z_^X@ B0?
($YU(CQ_____0H!.=2 !0H%.=2! 2AAF_")(4TB0B&P*
($1 ,@ 3(%-!;OH0@$YU($ B0$*!$AAG"E-!$MA1R?_\
($(1($!.=4H!9P0 0@0 0?H !C""($ $YU0J=.5O_P
($CN /_]$*N__ @+O_PL*[_^&P ").^@ 04J[_\" N
(/_P4X!.^O_D(&[_]-'N__!"$$[Z_^9.7EB/3G5"ITY6
(/_X+4#_^"!N__@Q? 0 0@;O_X0F@ !B!N__A": (
("!N__@Q? " P@;O_X,7P @ *(#P @ H1XB;O_X
("*(3EY8CTYU0J=.5O_02.X ?__@+R[_Y"\N_^ O+O_L
("\N_^Q"9T*GJ.P@;O_L0^[_T" \ "* N2&[_T#\N
(/_V/R[_\JBH+R[_Y"\N_^ O+O_L2&[_T#\\ ="IZCL
($(G2&[_T"\N_^Q(;O_8J*H0'T'N_]A#[O_0(#P (
(* N2&[_T#\N X_+O_ZJ*@O+O_@+R[_Z$AN_]A(;O_0
(#\\ %"IZCL3EY8CTYU0J=.5O_,2.X /__D0F[_S$)N
(/_.(&[_\# H 3C2#U _] @;O_P(F[_\# H :0:0 "
(.-(/4#_TD'N_\Q#[O_4(#P (H"Y(;O_4/R[_]C\N
(/_ZJ*@O+O_H+R[_["\N__!(;O_40F="IZCL0>[_S$/N
(/_4(#P (H"Y(;O_4,"[_^D1 /P _+O_VJ*@O+O_H
("\N_^PO+O_P2&[_U#\\ ="IZCL0>[_S$/N_]0@/
( (H"Y(;O_4/R[_^C N__9$0#\ J*@O+O_H+R[_["\N
(/_P2&[_U#\\ ="IZCL+R[_Z"\N_^PO+O_P2&[_S#\\
( #0J>H[$'N_\Q#[O_<(#P (H"Y(;O_</SP C\\
( "J*E![O_<0^[_U" \ "* N2&[_U# \ *0;O_V
(.1 /P P/ "D&[_^N1 /P"HJ"\N_^PO+O_D2&[_W$AN
(/_4/SP 4*GJ.Q.7EB/3G5"ITY6_E9![OZR( A.NOV>
($'N_J0@"$ZZ_91![OZ6( A.NOV*0>[^B" (3KK]@$ZZ
(/P62H!G $J?2H4$*GJ7M"IS\\ &-"IR\\_____ZE\
("!?+4C^:D*G2&[^6JF1#&X OY:9@ !*GT+R[^:C\\
( #2&[^:$AN_EQ(;OY@J8TO+OY<2&[^W*F02&[^W$AN
(/_>J0 O+OYJ/SP !$AN_FA(;OY<2&[^8*F-+R[^7$AN
(/[<J9 O+OYJJ8-";O_<+7P !_^ 0+O[<2(!(P+"N
(/_@;0 .D[Z !!2KO_@("[_X%. 3OK_X# N_]S!_ *
($'N_MS1[O_@$A!(@4C!T($$@ # ]0/_<3OK_SD*G
("\\1D].5# N_][O2-!N_]P_ *F@(%\M2/_X0B<_+O_>
(#\N_]RI A ?2@!G!$JN__AG!B!N__A*D&8 "A"IS\\
( !B0J<O//____^I?"!?+4C^:D*G2&[^6JF1+R[^:JF#
(*GT(&[_^*!*(&[_^* I(&[_^")0T_P 8(&[_^"10
("!N__@F4# J [!ZP 8XXC3P%2)+4G_\"!N__@B4-/\
( ! @;O_X)% P*@ 0XTC2P"U)_^P@;O_X(E P*0 8
(.-(/4#^TDAN_M1"9T)G,"[^TN=(/P @;O_X(E _*0 .
(*BG(&[_^")0T_P 85(DM2?[.2&[^QD)G0F<P+O[:
(.-(/P P+O[8XTA30#\ J*="KO_@(&[_^")0,"D !%)
($C L*[_X&T $1.^@ 04J[_X" N_^!3@$[Z_]H@;O_P
(" N_^#CB-' ("[_X%* (F[_\..(T\ P$+!1; #%-N
(/[,,"[^S%) 3OK_Q# N_LP&0 /Z$#C2#U _L0P+O[*
(,'N_L0&@ !H@;O_X(E @;O_X)% R*0 $DFH E9!
(.5)2,'0@2U _^ ,K@ @ #_X&T "A"IS\\ &%"IR\\
(/____^I?"!?+4C^:D*G2&[^6JF1+R[^:JF#J?0@+O_@
(*$B+4C_]"!N__1*D&8 2I]"!N__2@*2!N__@@4")N
(/_T(E$@/ !J@+B!N__0B4# I ;C2%- (&[_]")0
(#- 8@;O_T(E#CZ0 ((&[_]")0,"D "N-(4T @;O_T
(")0,T "B!N__0B4#-N_LH #"!N__0B4#-N_LH #B!N
(/_T(E P*0 2XTA30"!N__0B4#- !(@;O_T(E#CZ0 4
("!N__0B4./I !8P+O[$XD @;O_T(E S0 8(&[_]")0
("!N__0D4# I !C!Z@ .6( @;O_T(E R*0 $2,'0@2!N
(/_T(E R*0 "2,&0@5: 4X @;O_T(E S0 0(&[_]")0
(-/\ &"!N__0D4"!N__0F4# J [!ZP 8XXC3P%2)
("U)_^@@;O_T(E#3_ ! @;O_T)% P*@ 0XTC2P"U)
(/_D(&[_]")0T_P 85(DM2?[ (&[_Z$)02&[^@#\\
( !D/SP ,C\\ 2P_/ #ZJ*="IT*G2&[^@$AZ!<4?/ #_
($)G+SS_____0B="IZD3(%\M2/Y60J[_X"!N__@B4"!N
(/_X)% P*0 $D&H E) 2,"PKO_@;0 %-D[Z !!2KO_@
(" N_^!3@$[Z_] @;O_P("[_X..(T< @+O_@4H B;O_P
(..(T\ P$+!19P $A$AN_H @;O_P("[_X..(T< _$$)G
(" N_^!2@"!N__#CB-' /Q @;O_X(E _*0 .J*=(;OYX
($)G0F<P+OZ&D&[^@N-(/P P+OZ$XT@_ *BG2&[^SDAN
(/ZR2&[^@$AN_GA"9T*GJ.P@+OZ((CP @ 3KKX'D'N
(/Z(( A![O[.(@A![OZD) A![OZ )@@H/ (J/
( "3KKY*D'N_H@@"$'N_LXB"$'N_J0D"$'N_H F""@\
(/____XJ/ ).NOD"0>[^B" (0>[^SB((0>[^I"0(
($'N_H F""@\ BH\_____DZZ^-I![OZ(( A![O[.
("((0>[^I"0(0>[^@"8(*#S____^*CS____^3KKXLDAN
(/ZR2&[^I$AN_GA(;OYX0F="IZCL2&[^LDAN_I9(;OYX
($AN_GA"9T*GJ.Q";OZ","[^?%- /4#^A# N_GY30#U
(/Z&/7P ?YZ/7P ?YX0>[^>$/N_G @/ B@+DAN
(/ZR2&[^I$AN_H!(;OYX/SP !T*GJ.Q(;OZ /SP 4)G
(*BH2&[^>#\\__]"9ZBH2&[^LDAN_I9(;OZ 2&[^>#\\
( '0J>H[$AN_H!"9S\\ &HJ$AN_I9(;OZD2&[^>$AN
(/Z /SP 4*GJ.P@+OZ6(CP @ 3KKVI$*G0>[^LB (
($'N_J0B"$'N_I8D"$'N_G F""@\ BH\ 2P\
(/____].NO<"6$\O//____]![OZR( A![OZD(@A![OZ6
("0(0>[^<"8(*#P !*CP "0H9.NO;06$]"IT'N
(/ZR( A![OZD(@A![OZ6) A![OYP)@@H/ (J//__
(/__+#S_____3KKVGEA/+SS_____0>[^LB (0>[^I"((
($'N_I8D"$'N_G F""@\_____RH\ D*&3KKV;%A/
("\\_____T'N_K(@"$'N_J0B"$'N_I8D"$'N_G F""@\
( (J/ $L//____].NO8V6$\O//____]![OZR
(" (0>[^I"((0>[^EB0(0>[^<"8(*#P !*CP "
("P\_____TZZ]@!83R\\ 4'N_K(@"$'N_J0B"$'N
(/Z6) A![OYP)@@H/ (J//____\L//____].NO7*
(%A/+SS_____0>[^LB (0>[^I"((0>[^EB0(0>[^<"8(
("@\_____RH\ BP\ 4ZZ]9183TAN_I9(;OZD
($AN_G!(;OYP/SP 4*GJ.Q(;OZ(2&[^I$AN_G!(;OYP
(#\\ -"IZCL2&[^>#\\ &X_/ \/SP!*S\\ /FHITAN
(/YX(&W^_-'\ PB\(J*5![OYP0^[^>" \ "* N
($AN_G@_/ */SP "JBH2&[^I"!N_E94B"\(2&[^<$AN
(/YX0F="IZCL0F[^># N_G130#U _GP@;O_H("[_X..(
(-' /5#^>B!N_^@@+O_@XXC1P# 0T&[^=E- /4#^?DAN
(/ZD2&[^P$AN_G!(;OYX0F="IZCL("[_X%* (&[_Z..(
(-' ,*[^?M[\_^!.^@ >(&[_Z" N_^#CB-' ("[_X%*
(")N_^CCB-/ ,I @;O_L("[_X..(T< B;O_D("[_X..(
(-/ ,I @;O_L("[_X..(T<!*4&\ "(@;O_L("[_X..(
(-' ,!#C2%- (&[_Y"(N_^#CB='!,( @+O_@4H @;O_D
(..(T< PO/__3OKZTB!N__B@*B!N__B@22\N__BIHR!N
(/_TH"I"9ZF8+R[_]"\\1D].5# N_][O2#(N_]SC2=!!
(#\ 2'H &JFK0F>IF2!N__2@22\N_E:I%$Y>6(].=0 -
("!$;W5B;&EN9RXN+B @ &_X$! $_]H@;O_P
(" N_^#CB-' ("[_X%* (F[_\..(T\ P$+!1; #%-N
(/[,,"[^S%) 3OK_Q# N_LP&0 /Z$#C2#U _L0P+O[*
(,'N_L0&@ !H@;O_X(E @;O_X)% R*0 $DFH E9!
(.5)2,'0@2U _^ ,K@ @ #_X&T "A"IS\\ &%"IR\\
(/____^I?"!?+4C^:D*G2&[^6JF1+R[^:JF#J?0@+O_@
(*$B+4C_]"!N__1*D&8 2I]"!N__2@*2!N__@@4")N
(/_T(E$@/ !J@+B!N__0B4# I ;C2%- (&[_]")0
(#- 8@;O_T(E#CZ0 ((&[_]")0,"D "N-(4T @;O_T
(")0,T "B!N__0B4#-N_LH #"!N__0B4#-N_LH #B!N
(/_T(E P*0 2XTA30"!N__0B4#- !(@;O_T(E#CZ0 4
("!N__0B4./I !8P+O[$XD @;O_T(E S0 8(&[_]")0
("!N__0D4# I !C!Z@ .6( @;O_T(E R*0 $2,'0@2!N
(/_T(E R*0 "2,&0@5: 4X @;O_T(E S0 0(&[_]")0
(-/\ &"!N__0D4"!N__0F4# J [!ZP 8XXC3P%2)
( !H 00 ; +X!SP 1\ I@ 805%4E)/4@
( : #P 'P"D <( % .( &(%15)23U( F
( [ !, Y '- !50!5 !C$49O;G0@1&]U8FQE
('(@5C$N, .@ @ $P / #, +R "
( C $ 5 %$"%-$;W5B;&EN9R!T:&%T(&9O;G0@=V]U
(&QD(&-R96%T92!A(&9O;G0@;&%R9V5R('1H86X@,S)K
("!B>71E<RP@=VAI8V@@:7,@;F]T(&%L;&]W960N50
( #\!4 !3 9D$ D]+55555:JJJJJJJJJJJJJJJJJJ
(*JJJJJJJJJJ5555555555555555554 !)J55555:JJ
(*JJJJJJJ@ $EJJJJJJJJJJJJJJ5555555555555555
(%5555555555556JJJJJJJJJJ@ + @ $ 6
( P #8@ @ @ $\ -P$G"!M4:&%T(&9O;G0@
(&1O97,@;F]T(&5X:7-T+BXN:0 '@$S #(!? 0"
($]KJJJJJJ@H5555555555555555555555555554/*JJ
(*JJJJJJJJJJJJJJJJJJJJJJJJMA5555555555555555
(%55555555555 JJJJJJJJJJJJJJJJJJJJJJJJJJJJD6
(%55 2F@ : !P - $@ $X!<@0)1&]U8FQE
("!I=%0 %H!( !U 7 $!D-A;F-E; /0!>
( !. +N0 7P!3 &\ ;Y ] D 2@!7
((@*1F]N="!N86UE.@ 7P ) &\ 3(@*1F]N="!S
(&EZ93H H "P P ;&(>JD@,3DX-"!B>2!7:6QL
(&EA;2!0=6=H+"!W<FET=&5N('5S:6YG($UA8R!#(&)Y
("!#;VYS=6QA:7(@0V]R<"X-(" @(" @('!E<FUI<W-I
(&]N(&=I=F5N('1O(&-O<'D@9F]R(&YO;BUC;VUM97)C
(&EA;"!P=7)P;W-E<P @P! )<!DH@L5&AI<R!P
(')O9W)A;2!W:6QL(&1O=6)L92!A;F0@:6YS=&%L;"!A
("!F;VYT+B\X"@*HJ2\\ H "JB;(%5(:/_XJ)VHH2!5
($AH__"HG2\\ ( B\\ ( JB;J*E(> GZJ*&HGMEL
( $V6P !DYU_P#_ /\ _P!!^ GZ(FL <B)15$D@F2%1
( $,! &0 3,4 $ 5J@ %*H "B $J9 !<
( !P H@ "0T]$10 " !I$3$]' ( /D1)5$P @!B
( __\@ $L3 !__\@ < $L. #___\@ \P
( !+!P 8___ 1/ !+#P 8O__ 1'@ !+$0 8?__
( $0 2Q0 &/__P $P8 2P0 &+__P $E( 2P8
# !A__\ !%F $L)
***END OF DATA
***CRC:51EB
Technical Details
Message-ID:
<744@cornell.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!mhuxj!houxm!vax135!cornell!pughReferences:
<72@tektools.UUCP>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site cornell.UUCP Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!mhuxj!houxm!vax135!cornell!pugh From: pugh@cornell.UUCP (William Pugh) Newsgroups: net.micro.mac Subject: Font Doubler program Message-ID: <744@cornell.UUCP> Date: Thu, 20-Dec-84 13:19:23 EST Article-I.D.: cornell.744 Posted: Thu Dec 20 13:19:23 1984 Date-Received: Fri, 21-Dec-84 02:16:54 EST References: <72@tektools.UUCP> Reply-To: pugh@gvax.UUCP (William Pugh) Distribution: net Organization: Cornell Univ. CS Dept. Lines: 205