Enough people expressed interest that I'm passing along my dataglyph
implementation. I've cleaned it up and commented it somewhat. Use as
thou wilt.
I've waited to reply to Steve's message until now so I could include
the cleaned-up dataglyph implementation. It's stuck at the end of this
email (only 106 lines of uuencoded gzipped postscript), which is exactly
the correct place to include PostScript.
Sprach Steve Furlong <[EMAIL PROTECTED]>:
> <<stegographic dataglyphs can be small enough to be ignored but won't
> survive faxing, or big enough to fax but can't be ignored by the eye>>
>
> Can you make the glyphs look like an after-image from the printer's
> drum? Partial shadow images are pretty common on laser printers.
I've never seen the phenomenon to which you refer, but I'm imagining a
light gray image of previous documents appearing under a printed
document. I suppose I could do that, but if I do I reduce the signal
to noise ratio. That signal to noise ratio is pretty important when
it comes to the scanning step. And if I make it too ghostly, I bet
it'll get dropped entirely (as opposed to simply corrupted) by a FAX
machine.
P.S.:
begin 600 dg.ps.gz
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
MW@"-&G)&WWMY',_.]_+@T"'?VPJ)>' 'L/M%F<"PS!DF1^*$B-PXI&[)R^_
M,-SLP"SNVCGQAPSQ3O9._B_L'3^$O]^8L>/[.)/<[#,P'<40(L=62U$9&SIQ
M6#*91N.,[<)[email protected] $(Y4J1)ZYR3?I#9<OT>L5[ZE4@3(B8_29,C^K
MS_CS"W[/\=NN3(E(1AAZT 6#+AX">L:@9P\!O630RX> 9A="[,5#@$\7T=<>
M GPA!%]\D>)L(?32WSM!">H7RJEP:.PEG:.JH$0^*H&CZR4;!2,Q-\@1"0,#
MSP__"4:$13+UCZ+-]V08']EP7G/\M[4W;5!S)+D;3AEB]9**+<XA4)C65(/2
M2:'>,U, =#"MQC6]D2SGL]ER<3IA0@;&$Y]'DA87:G&N6N1- XBLAP T(7AT
MWTO!\4PMSL8XS@[!9-WI&-G=4(+U4BVR6Y1E]RP05-EM:K^T0/9Z3M9XN->O
MK.C1CG9[R!+>;ZA^]<\4%:@B&!J"SD/'*0U2S;RCW+.W Q1%+Q@R%=0X]N=3
M:" 5"+$ '9;C*,*VAC/- FE('N#^5-T;U,FM9V0_P1U^HM*42EJXP_XU)3DQ
M?UX[[N,X[N(@[1RV%RB_)T2QK_/:<0%&K2"N'KG))$9-_@6(EZ@;O<T%5QV3
M2\KR!<V^GY;[V=;Z?&:*[N2ON3]?+(ZSD^_H/.^"/S%Y/FO\C!=][UA..% Z
MS^*;QE9:RI?&[1#VI[JKEJ +B5GK*L:3)9[Y3=^[HO=0)3,QJ H]MPVX8J:^
M2TSS&9%!EBYM,U8*$?,6I[S/6]L$25"7IG3;:?)WZGG&'EM=F!M3,!K96'C\
MPWRN7OP>=K;X<3D_P\\%?BY_A)7A!\\R/,OP+,.S!9XM\&R!9PL\@T\]^3T$
M-L^>1ES9'M=YQ/4\XCJ-N)Y%7%G$=4ZX(IY%PG,J>,[V>+(LTI/P/(_T)#S/
M!O2<)3S/!,_E@(X1GL5IY.<\\C3$<QGQ9.>,A^40Z;^U_Z_@R2XB'@0&X('(
M?X2H?B0YS6:S :SXF !3N>*Y5)^J@BL%&[Z6:G;?N6C9]/\=H,:(%Q>.\$_2
MV;PV87 TJ.5B(@E /(_Y-=*,10]P-@2X& LSWJ8BR',Y2',\J('NQR"(6J-
MX9:7/2A'VCTLTSWX?C;Z?C'ZSC0,,2SFAQ"+$<;%"./BXA:&VWQ!5_B"CXL]
MCPMB$N:QV(?[_:OQTD5:CC4WKKWKY]?60RS->QCM,3!\?"@*K%@<]_##/"':
M22:A8?1BGTND=+%_>[!ZGM[WK^?Q#?7SR""_)8/,!@U;[C)Q'0[ *2K$DMO^
M@Q)ZHZ\ID*'"C\4R(T(\;%K'QPTGQ*5KFET\*F9#@]\K\?SPZ\ALGH^L:#ZV
M@>ST"W;X[(MVF'W!#L_OL4-L-3 I?%N:7'?(.:DSOC);G ]TI%KI--]O#/?]
M[!4OFV?RYT!IIQ.U#Q,/%6HVXEA\^6^2ZD@OB_G?+-617A:78ZG^_0([O4-@
MSR9J'Q*_8&>_I<06IW=%MP.)W6EG_UB)/;LML>Q\HNZ.Z'=ZUF]J(_\O9(:3
M92RTF(?';O9VX_CF,$BN1Y]2+!R'9E0&R/<I0 ^_ O@S[Y[*TUOP;\=$(8M)
M1!W"XO?;C[&6X"ZDI8N4_S)48TA0Y]A/[5<F=MBHIY35 FGL0$L5P3>Y2YNN
MCO=Y]O$Q[T<U-TBF.W-IPG"ROM3+W5?,ES0P^E81:O)]6ZROXO=U>>K Q/NP
MV(/YHZVER[(!%Q7?_$IO4])J:AC'!5'PL0N9*GKJ7^;&EI3W4W.'J_YH-K3=
MG5O(E0F7!,!(O.^OW+"D1],W. ]VD=7]%I-1QPIUO3IHHG)GBJWE2)I(J#_7
MTIE/==AK,G52AS23HD*2I$@1W'ZS9*=]1ZZM]BA$-O0S?GGXAT%'(ER'>Y8
M[E^8H/IK7O>Y7T+]EX$RDK;OQ,*BC$T6%AK\F&^;KW4YWKAOELFG>QD=<<"0
M0SQ/J!>#]*:EZ]+:?/TTTD^ZZ1L_#T1./>/T^1;]P_6,X$B]6:%\?WS-]X'Y
M!I7JZ+Z.&\I<Z]9RY8A2MS;;U%0?M!"/$CMMU1,W-K5#,/K_)NI86.;?(WN,
MO>3#?KRZU99-3=74>M[W8/=]L]BD2[VR7Z)'4!,E@3_9S^3,)H/Y'+F#),YI
M/JAVI5OO^&+4U'&HJ-)T 6CBY7 9K\T=-6D;W2!)2U?AGN9E'%]Y-IN=YZ&3
MRA16RP7E3E":@[$%[O6&C>L\-;)9.;9&-4@WH->VZ(!"@D*Z^02N5^2B\3MG
MU-;+!966(8G[9U*TE]M6^I"=9/.Y7*3$:T<B'S'/HQ8UC>EOG.52V;NR2V-.
M?",)7<MH"VS*Y[JNI>>A^8X;66R1*'4LNSADX&^-PLQIVVRTYW9C6([4*D$-
M0#?+^X$76B"WN31']7,'L<K B=S!Q2$0(H'[3B+T&BIJ;3[E 2D2:Z^K@3IF
M$RJ]Q[*/+=36=0VC7 MM430T@)5Z,8&T3-A45[ME:#MO::C)7!LN@&AG:AJM
MZ6"D* ]1<Y&TT>7J.$!0A6IL3D"DYS_7?0PF6&H)D6'*8$"OV4/S(.&G,H(D
MSO?\&]'[MDZ3$41U0.RH??\DT@T^ZA8F[_V056YYN:"NK?3(L#M\4^>!R[+>
MFX8N!#"W)8\H1,U+(AO&-? 6:GXA2=@=VC_%2V"FJ^[1B,_&%H6II1XB10]D
M+"(]9(KL( XB@/\E\H\UC_A Z'ZCV=+Z!1 K3P/5M!$)5>[V893>KNNA\_UY
M%8R,^5BX.1MU;N0N>.WZ(2H:P*@A,9NS'WQX\HZC;[ 0)$[9L//+KEVKET71
MDDQX^4IJ/;V?'HR=4,Z?XAU^<O'__(&FAP*=R_A=-;,/3P=Z8-M*CL">:FC>
M:C#!1")I*.J3C .-Z4#*Y=ZK487#J7P<K3@8M.(AGZ:+A:D9#CO"^,3="L)/
M\V;BG:+)D5?)%-B!SR92C66S*RQUEFG^91>/KQB2O5N%+1GEAR<R'4E-A9S&
M!W>L@@Y:5:7V%(D99?OA*>GXVFJ>=!MH>LPQC*.CRQ&ROI4W04+"( Z4VB(/
M(F=B@=*0(2CTC8:JTW!75\+HUBT TR@3D9^&P4;A0(;)J)\O-_R<@0W&QU*V
M3&':5$M3D'C]#@&[=;7])%HI8<F6!-VJW_DKV"NBR>\HA>8!+\.S-%,0>T,A
M1JR>E!+YDK2<+B3B("GY"6J0/JP.Z>& C[R#LF-2<DXG.@?_EJ9N8!^V@C"O
MTSA2:=,$%7#1(<I!XP]F19-1?)9")DW)\HO'H6'^PI#!%8U#3&6F+(5BN2BE
M[>/QM\(Q7KA/"!(RP$"D\HU$NJ5(C7R^-6!!T@G!%0BAB>:N*\Z[@?)P<6_]
M?+;0>-G&>=Y,]-O0G&J< [QUA)J;!CBP[F>XP*"Z8P,\IA-4Y;N\I%[O=SC<
MR(!A**6_DPP<U^3BYB VC/14&T,,DH,@NT:0K >,R5 F3^G=HRR^?1##2#.-
MR4WYEF:9)J]L'VFN#8(Y\"'#H $7Q =37ULH4>)]?T:VYC$9S@9L"I,<'RH*
M9K6S/KFUN=$436&V^D;\M\<P.$7()Y$Z_D6$"_W .-8;&1=D2WOIQ4UI!#B8
M)M[OI"%5YHMPR+2'G&W(ZDC#.D<AZ4=RW<\/VQ7/"*<P.A)_GQY0B@@9>3#:
M4J@H-'%:I%%19IN&CNO=,$;*"'<B4&:-J"%*>4^*G)VGX4A)5]G$[C1U$HG)
MH>*6U!6/].EMFR*<(H3D<V08E*FS7O?:\N+(O:E(@L.IPU@(,B"K;2N3W[:^
MDB@SI5-+"FPJ23C:(X9(!B"6()*93=33OO2><!9#"=<$V:T/-+?]O\\=(($:
#,
end
--
Jon Paul Nollmann ne' Darren Senn [EMAIL PROTECTED]
Unsolicited commercial email will be archived at $1/byte/day.
Who is the true patriot: the man who sings the praises of a rotting land,
or he who calls your attention to the blemishes in paradise?