%!PS % A Tutorial and Guide to our Image Post Processing Tools % ======================================================= % by Don Lancaster GG #88 POSTPROC.PSL /ggnum 88 store % Copyright c 2008 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: don@tinaja.com Website: http://www.tinaja.com % Consulting services available http://www.tinaja.com/info01.html % Linking welcome. Reposting expressly forbidden. First pub 2/08. % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.1 % IMPORTANT NOTE: Don Lancaster's file gonzo.ps is required for this program. % After obvious location mods, uncomment ONE of the following two lines: (C:\\Documents and Settings\\don\\Desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % NOTE THAT ALL PS FILENAME STRINGS !!!DEMAND!!! DOUBLE REVERSE SLASHES. % GONZO20A Guru Gonzo PostScript power tools (Interim release) % Includes gonzo justification and layout utilities. % Copyright c 1990, 1996, 2001 by Don Lancaster and Synergetics, Box 809, % Thatcher Arizona, 5552 (928) 428-4073 don@tinaja.com support % via http://www.tinaja.com All commercial rights and all electronic % media rights **FULLY** reserved. Reposting is expressly forbidden. % Many routines removed and cleaned at #58 %%%%%%%%%%% links menu directory %%%%%%%%%%%% % This code locks pdfmark commands out of a PostScript printer. /pdfmark where {pop}{userdict /pdfmark /cleartomark load put} ifelse % /surl "start url" marks the beginning of a text sequence to be urled. % It also paints the text blue... /surl {mark /blue cvx 0.33 /setgray cvx % change text to blue /currentpoint cvx % remember box start /urly /exch cvx /store cvx /urlx /exch cvx /store cvx ] cvx % complete deferred command printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def % /eurl "end url" unmarks the end of a text sequence and sets up % the pdfmark needed to define the Acrobat web link. /eurl {mark % start deferred proc exch % position url string % /black cvx 0 /setgray cvx % turn blue marker off % maintextcolor /setrgbcolor cvx % reset to main text color??? /aqua cvx /black cvx /makeurl cvx % defer call of url builder ] cvx % complete deferred proc printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } def % /makeurl generates the pdfmark, receiving a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /urlover 0.2 def % fraction of hot area over bounds /makeurl { /cururlname exch store % save the url string mark % start pdfmark currentfont /ScaleMatrix get 3 get /fsize exch store % guess height /Rect [ urlx fsize urlover mul sub % set box left x urly fsize urlover mul sub % set box left y currentpoint exch fsize urlover mul add exch fsize add ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def % /makeurlx generates the box specific pdfmark, receiving % a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /makeurlx { /cururlnamex exch store % save the url string mark % start pdfmark /Rect [ xpos % set box left x ypos 0.9 sub % set box left y xpos 2.8 add % box right x ypos 0.9 sub 2.8 add % box right y ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def /maintextcolor {0 0 0 } def % text link specific data -- use dictionary instead below { /cubic01 {(http://www.tinaja.com/cubic01.asp) eurl} def /hack62 {(http://www.tinaja.com/glib/hack62.pdf) eurl} def /increment {(http://www.tinaja.com/text/bezgen3.html) eurl} def /interpolate {(http://members.bellatlantic.net/~vze2vrva/design.html) eurl } def /bezmath {(http://www.tinaja.com/text/bezmath.html) eurl } def /table {(http://www.tinaja.com/psutils/imtable.psl) eurl } def } pop % zzzzz keep for search marker % dictionary method << % gg88 /airbex1 (http://www.tinaja.com/images/bargs/grbpum01.jpg) /airbex2 (http://www.tinaja.com/images/bargs/abfx6d41.jpg) /nowhites.psl (http://www.tinaja.com/psutils/nowhites.psl) /wave1001.jpg (http://www.tinaja.com/images/bargs/wave1001.jpg) /keycor01.pdf (http://www.tinaja.com/glib/keycor01.pdf) /ccelllink (http://www.tinaja.com/glair01.asp#ccell) /vignexamp (http://www.tinaja.com/images/bargs/tk506a01.jpg) % gg87 /lineq04.psl (http://www.tinaja.com/psutils/lineq04.psl) /invegraf.pdf (http://www.tinaja.com/glib/invegraf.pdf) /aosutil1.psl (http://www.tinaja.com/psutils/aosutil1.psl) /airdemo1.jpg (http://www.tinaja.com/images/bargs/airdemo1.jpg) /airstudy.psl (http://www.tinaja.com/psutils/airstudy.psl) /airstudy.log (http://www.tinaja.com/psutils/airstudy.log) /airbrut1.psl (http://www.tinaja.com/psutils/airbrut1.psl) /airbrush.psl (http://www.tinaja.com/glib/airbrush.psl) /airbrush.pdf (http://www.tinaja.com/glib/airbrush.pdf) % gg86 /wikiericsson (http://en.wikipedia.org/wiki/Ericsson_cycle) /trackingcalc (http://www.macslab.com/optsolar.html) /newthermo (http://www.johnsonems.com/jhtec.html) /wikithermoelectric (http://en.wikipedia.org/wiki/Thermoelectric_effect) /newnano (http://www.gizmag.com/researchers-developing-solar-technology-that-works-at-night/8574/) /googlenanoantenna (http://www.google.com/search?q=solar+nanoantennas&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /currentmetalloradical (http://www.sciencedaily.com/releases/2008/02/080217170412.htm) /sciencemetalloradical (http://www.sciencemag.org/cgi/content/abstract/277/5334/1953) /googlemetalloradical (http://www.google.com/search?q=metalloradical+photosynthesis&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /sciencenewsquantumdot (http://www.sciencenews.org/articles/20060603/bob8.asp) /googlequantum (http://www.google.com/search?q=quantum+dot+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /ricetetrapod (http://www.sciencedaily.com/releases/2007/05/070502143631.htm) /googletetrapods (http://www.google.com/search?q=tetrapod+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /solyndra (http://www.solyndra.com/) /miasole (http://www.miasole.com/) /iset (http://www.isetinc.com/) /heliovolt (http://www.heliovolt.net/) /daystar (http://www.daystartech.com/) /globalsolar (http://www.globalsolar.com/) /firstsolar (http://www.firstsolar.com/) /nanosolar (http://www.nanosolar.com) /googlecigs (http://www.google.com/search?q=cigs+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /wikifungible (http://en.wikipedia.org/wiki/Fungibility) /califsetback (http://www.tinaja.com/whtnu06.asp#decades) /springervillepv (http://www.greenwatts.com/pages/solaroutput.asp) /h2gas01 (http://www.tinaja.com/h2gas01.asp) /zomeworks (http://zomeworks.com/) /solarcalc1 (http://www.powerfromthesun.net/CALCULATORS/AngleCalc.html) /solarcalc2 (http://susdesign.com/sunangle/) /googlesolarcalc (http://www.google.com/search?q=solar+angle+calculations&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /muse153.pdf (http://www.tinaja.com/glib/muse153.pdf) /googleexergy (http://www.google.com/search?q=exergy&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /wickexergy (http://en.wikipedia.org/wiki/Exergy) /hack64.pdf (http://www.tinaja.com/glib/hack64.pdf) /whtnu08 (http://www.tinaja.com/whtnu08.asp) /energfun.pdf (http://www.tinaja.com/glib/energfun.pdf) % gg85 /bmp2psa.pdf (http://www.tinaja.com/glib/bmp2psa.pdf) /pixintpl.pdf (http://www.tinaja.com/glib/pixintpl.pdf) /gaussjor.pdf (http://www.tinaja.com/glib/gaussjor.pdf) /determinants (http://en.wikipedia.org/wiki/Determinant) % gg84 /img2bmp (http://www.google.com/search?q=postscript+image+to+bitmap+conversion&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /distbug (http://www.adobe.com/devnet/acrobat/downloads/Acrobat_SDK_readme.html) /AOSutil1.psl (http://www.tinaja.com/psutils/AOSutil1.psl) /falseclr.pdf (http://www.tinaja.com/glib/falseclr.pdf) /bannpe06.jpg (http://www.tinaja.com/images/bargs/bannpe06.jpg) /arabbb.jpg (http://www.tinaja.com/images/bargs/araabbb.jpg) % gg83 /pixintp1.pdf (http://www.tinaja.com/psutils/pixintp1.pdf) /pixintp1.psl (http://www.tinaja.com/psutils/pixintp1.psl) /pixintpl.pdf (http://www.tinaja.com/glib/pixintpl.pdf) /pixintpl.psl (http://www.tinaja.com/glib/pixintpl.psl) /wikipedia (http://en.wikipedia.org/wiki/Main_Page) /wikilin (http://en.wikipedia.org/wiki/Bilinear_interpolation) /wikicub (http://en.wikipedia.org/wiki/Bicubic) % gg82 /muse111.pdf (http://www.tinaja.com/glib/muse111.pdf) /pdfanim.pdf (http://www.tinaja.com/glib/pdfanim.pdf) /falseclr.psl (http://www.tinaja.com/glib/falseclr.psl) /dodgebur.pdf (http://www.tinaja.com/glib/dodgebur.pdf) % gg81 /htmlfordummiesbook (http://www.amazon.com/exec/obidos/ISBN=0764589172/donlancastersgurA/) /htmldefinitiveguidebook (http://www.amazon.com/exec/obidos/ISBN=0596527322/donlancastersgurA/) % gg80 /kearney (http://www.cs.uiowa.edu/~kearney/pubs/CurvesAndSufacesClosestPoint.pdf) /cmindist.psl (http://www.tinaja.com/glib/cmindist.psl) /piecewise (http://delivery.acm.org/10.1145/810000/801153/p229-plass.pdf?key1=801153&key2=0010608811&coll=GUIDE&dl=&CFID=15151515&CFTOKEN=6184618) /nubzlen1.pdf (http://www.tinaja.com/glib/nubzlen1.pdf) /nubz4pts1.pdf (http://www.tinaja.com/glib/nubz4pts1.pdf) % entered during gg79 /gonzotut.pdf (http://www.tinaja.com/glib/gonzotut.pdf) /gonzotut.psl (http://www.tinaja.com/glib/gonzotut.psl) /bookcvr1.pdf (http://www.tinaja.com/glib/bookcvr1.pdf) /swingtlt.pdf (http://www.tinaja.com/glib/swingtlt.pdf) /curvetr2.pdf (http://www.tinaja.com/psutils/curvetr2.pdf) /curvetr2.psl (http://www.tinaja.com/psutils/curvetr2.psl) /blanksusa (http://www.blanksusa.com) /gonzotut.psl (http://www.tinaja.com/glib/gonzotut.psl) /ps8dprp1.pdf (http://www.tinaja.com/glib/ps8dprp1.pdf) /pdfedit1.pdf (/http://www.tinaja.com/glib/pdfedit1.pdf) % entered during gg78 /enhebay6.psl (http://www.tinaja.com/glib/enhebay6.psl) /enhebay6.pdf (http://www.tinaja.com/glib/enhebay6.pdf) /slashdot (http://www.slashdot.org) /blackrangelodge (http://www.blackrangelodge.com/) /kijiji (http://www.phoenix.kijiji.com) /aznews (http://www.usnpl.com/aznews.html) /azschools (http://www.ade.state.az.us/schools/schools/districts.asp) /azcounties (http://www.az.gov/webapp/portal/displaycontent.jsp?name=county) /aztowns( http://www.azleague.org/index.cfm?fuseaction=about.cities) /natuniv (http://www.utexas.edu/world/univ/state/) /natcc (http://www.50states.com/college/arizona.htm) /barbiecollect (http://www.barbiecollector.com/shop/dept.aspx?deptid=2&shelfid=02&view=all) /googlebarbie (http://www.google.com/search?q=barbie+doll&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /wikibarbie (http://en.wikipedia.org/wiki/Barbie) /countyourassests (http://www.soldyourway.com/) /christies (http://www.christies.com/home_page/home_page.asp) /sothebys (http://www.sothebys.com) /franklinmint (http://en.wikipedia.org/wiki/Franklin_Mint) /klausbarbie (http://en.wikipedia.org/wiki/Klaus_Barbie) /enhebay5.pdf (http://www.tinaja.com/glib/enhebay5.pdf) /whtnu06 (http://www.tinaja.com/whtnu07.asp) /whtnu07 (http://www.tinaja.com/whtnu07.asp) % entered during gg77 /fastmsol.pdf (http://www.tinaja.com/glib/fastmsol.pdf) % entered during gg76 /ieeefp (http://en.wikipedia.org/wiki/IEEE_754) /ps8dprpt.psl (http://www.tinaja.com/psutils/ps8dprpt.psl) % entered during gg75 /pstrans2.pdf (http://www.tinaja.com/glib/pstrans2.pdf) /ghostscript (http://pages.cs.wisc.edu/~ghost/doc/AFPL/index.htm) /PLRM (http://www.adobe.com/products/postscript/pdfs/PLRM.pdf) /pdfref (http://www.adobe.com/devnet/pdf/pdf_reference.html) % entered during gg 74 /ebaymktsearch (http://pages.ebay.com/marketplace%5Fresearch/) /ebaystat.psl (http://www.tinaja.com/glib/ebaystat.psl) /ebayadvsearch (http://search.ebay.com/ws/search/AdvSearch?sofindtype=13&_trksid=m37) /ebaystatservice (http://www.medved.net/cgi-bin/cal.exe?EIND) % entered during gg 73 /bridge701.psl (http://www.tinaja.com/magsn_5/bridge701.psl) /bridge701.pdf (http://www.tinaja.com/magsn_5/bridge701.pdf) /demo28a (http://www.tinaja.com/demo28a.asp) /gaussjordan (http://en.wikipedia.org/wiki/Gauss-Jordan_elimination) /sinseries (http://www.ucl.ac.uk/Mathematics/geomath/level2/series/ser11.html) /newtonmethod (http://en.wikipedia.org/wiki/Newton's_method) /trigidentity (http://www.sosmath.com/trig/Trig5/trig5/trig5.html) /demo28a.asp (http://www.tinaja.com/demo28a.asp) % entered during gg 71 /detmssol.pdf (http://www.tinaja.com/glib/detmssol.pdf) /detmssol.psl (http://www.tinaja.com/glib/detmssol.psl) /alvinpile (http://www.tinaja.com/glib/enhebay2.pdf) % duplicate name /dilbert (http://www.dilbert.com) /putty (http://www.putty.nl) /legible1.pdf (http://www.tinaja.com/glib/legible1.pdf) /muse144.pdf (http://www.tinaja.com/glib/muse144.pdf) /webcolr.pdf (http://www.tinaja.com/psutils/webcolor.pdf) /ifilter (http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611) /drmsbiz1 (http://reform.house.gov/UploadedFiles/MG%20Williams%20July%2025%20Testimony.pdf) /drmsbiz2 (http://www.gao.gov/new.items/d05277.pdf) /drmsclosed (http://www.drms.dla.mil/A76/transitionsitelistrevised.pdf) /drmsmap (http://www.drms.dla.mil/meo/routemap.htm) /drms (http://www.drms.dla.mil/) /enhebay4.pdf (http://www.tinaja.com/glib/enhebay4.pdf) % entered during gg 70 /insidegame (http://www.amazon.com/exec/obidos/ISBN%3D1585006246/donlancastersgurA/002-8267096-8078436) /auctionbytes (http://www.auctionbytes.com) /texasauctionlaw (Texas auction law: http://www.license.state.tx.us/auc/auction.htm) /shermananti (http://www.gamingip.com/Statutes/ShermanAct/ST-Sherman1-4.html) /mainantique (http://www.antiquedigest.com/articles/auclaw.htm) /finex1 (http://www.tinaja.com/images/bargs/pwrssrx3.jpg) /knockback.psl (http://www.tinaja.com/psutils/knockback.psl) /krylondull (http://www.krylon.com/main/product_template.cfm?levelid=5&sub_levelid=8&productid=1822&content=product_details) /adeptaabb (http://www.tinaja.com/images/bargs/araabbb.jpg) /bonnette (http://www.bonnetteauctions.com/) /walmartauctionsignup (mailto://Joan.Ramsey@Wal-Mart.com) /walmartauction (http://walmartstores.com/GlobalWMStoresWeb/navigate.do?catg=504&contId=49) /ucc (http://www.law.cornell.edu/ucc/) /whtnu06 (http://www.tinaja.com/whtnu06.asp) % entered during gg69 /wikicat (http://en.wikipedia.org/wiki/Catenary) /bezcat.psl (http://www.tinaja.com/glib/bezcat.psl) /nubz4pts1.pdf (http://www.tinaja.com/glib/nubz4pts1.pdf) % entered during gg68 /nobodydog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /kaizen (http://en.wikipedia.org/wiki/Kaizen) /circuitcellar (http://www.circuitcellar.com/guru/) /makemag (http://www.makezine.com/) /adamsadventures (http://www.msadams.com/downloads.htm) /linux (http://www.linux.org/) /opensource (http://www.opensource.org/) /craigslist (http://phoenix.craigslist.org/) /autotrader (http://www.autotrader.com/) /lulu (http://www.lulu.com/) /bookmarket (http://www.bookmarket.com/ondemand.html) /burgerking (http://www.bk.com) /newtek (http://www.newtek.com) /memsnet (http://www.memsnet.org/) /muse131.pdf (http://www.tinaja.com/glib/muse131.pdf) /muse120.pdf (http://www.tinaja.com/glib/muse120.pdf) /supercap (http://www.sciencemag.org/cgi/content/abstract/313/5794/1760?maxtoshow=&HITS=10&hits=10&RESULTFORMAT=&fulltext=carbon+pore+sizes&searchid=1&FIRSTINDEX=0&resourcetype=HWCIT) /quantumdots (http://www.google.com/search?q=%22quantum+dots%22+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /datasheetarchive (http://www.datasheetarchive.com/chipPhotos/photosA.html) /googleearth (http://www.earth.google.com) /toystory (http://us.imdb.com/title/tt0114709/) /robotmovie (http://us.imdb.com/title/tt0358082/) /cars (http://us.imdb.com/title/tt0317219/) /netflix (http://www.netflix.com/) /blockbuster (http://www.blockbuster.com/online/) % entered during gg67 /puzz01.psl (http://www.tinaja.com/psutils/puzz01.psl) /alphamet1 ( http://www.tkcs-collins.com/truman/alphamet/alphamet.shtml) /alphamet2 (http://www.tkcs-collins.com/truman/alphamet/alpha_gen.shtml) /alphamet3 (http://users.aol.com/s6sj7gt/mikealp.htm) /msinexec.pdf (http://www.tinaja.com/glib/msinexec.pdf) /paradigm.pdf (http://www.tinaja.com/glib/paradigm.pdf) % entered during gg66 /thunderbird (http://www.thunderbird.com) /spysweeper (http://www.webroot.com/consumer/products/spysweeper/?rc=1651) /norton (http://www.symantec.com/index.htm) /pestpatrol (http://www.pestpatrol.com/) /firefox (http://www.firefox.com) /sciencemag (http://www.sciencemag.org/) /worldfact (http://www.cia.gov/cia/publications/factbook/) /internetdog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /zipcode (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /weather (http://www.weather.com/) /thomasreg (http://www.thomasregister.com/) /topozone (http://www.topozone.com/) /yahoostock (http://finance.yahoo.com/) /reversephone (http://www.reversephonedirectory.com/) /uspto (http://www.uspto.gov/patft/index.html) /msnbc (http://www.msnbc.com/) /imdb (http://us.imdb.com/) /loanamort (http://www.hsh.com/calc-amort.html) /kellybook (http://www.kbb.com/) /googlemaps (http://maps.google.com/) /newyorker (http://www.newyorker.com/) /currexch (http://www.xe.net/ucc/) /chemele (http://www.chemicalelements.com) /cnn (http://www.cnn.com) /areacodes (http://decoder.americom.com/cgi-bin/decoder.cgi) /tinajaoffsite (http://www.tinaja.com#offsite) /tinajaengines (http://www.tinja.com#engines) /walmart (http://www.walmart.com) /rssbook (http://www.amazon.com/exec/obidos/ISBN%3D0764588486/donlancastersgurA/002-5434897-4181636) /webwb01 (http://www.tinaja.com/webwb01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /validator (http://rss.scripting.com/) /webbooks (http://www.tinaja.com/books/bkwbmast.asp) /dreamweaver (http://www.adobe.com/products/dreamweaver/) /golive (http://www.adobe.com/products/golive/) /frontpage (http://office.microsoft.com/en-us/FX010858021033.aspx) /htmlbooks (http://www.tinaja.com/books/bkhtml.asp) /htmldummybook (http://www.amazon.com/exec/obidos/ISBN=0764507230/donlancastersgurA/) /naa (http://www.auctioneers.org) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /enhebay3.pdf (http://www.tinaja.com/glib/enhebay3.pdf) /ipswitch (http://www.ipswitch.com/Products/WS_FTP) /networksolutions (http://www.networksolutions.com) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) % entered furing gg65 msexec summary /picpro (http://www.tinaja.com/glib/mspicpro.pdf) /fourier (http://www.tinaja.com/glib/muse90.pdf) % entered during GG64 log log graphs /pdfrm1 (http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/pdf_creation_apis_and_specs/pdfmarkReference.pdf) /loglog01.psl (http://www.tinaja.com/psutils/loglog01.psl) /loglog01.pdf (http://www.tinaja.com/glair/loglog01.pdf) /bookcvr1.psl (http://www.tinaja.com/psutils/bookcvr1.psl) /bookcvr1.pdf (http://www.tinaja.com/glair/bookcvr1.pdf) % entered during gg 63 two phase magic sinewaves /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /mspicpro.pdf (http://www.tinaja.com/glib/mspicpro.pdf) % entered during gg 62 enhance III /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /rss (http://www.tinaja.com/whtnu.xml) /oreproptable (http://www.tinaja.com/whtnu05.asp#rogue3) /javascriptslideshow (http://www.codelifter.com/main/javascript/slideshow4.html) /logrptx2.psl (http://www.tinaja.com/psutils/logrptx2.psl) % entered during GG61 /jpg2pdf.pdf (http://www.tinaja.com/glib/jpg2pdf.pdf) /barcodeonline (http://www.raise-the-bar.co.uk/cgi-bin/webbarcodegen.pl) /barcodegen (http://www.terryburton.co.uk/barcodewriter/) /barcodetutorial (http://www.barcode-us.com/info_center/bookinfo.htm) /isbn (http://www.isbn.org/standards/home/index.asp) /bookcovr.psl (http://www.tinaja.com/glib/bookcovr.psl) /bookcovr.pdf (http://www.tinaja.com/glib/bookcovr.pdf) /begstuff (http://www.tinaja.com/post01.asp#begstuff) /ghostscript (http://www.cs.wisc.edu/~ghost/) /bod01 (http://www.tinaja.com/bod01.asp) % entered during GG 60 /bezlenjf.pdf (http://www.tinaja.com/glib/bezlenjf.pdf) /bzlnsub1.psl (http://www.tinaja.com/psutils/bzlnsub1.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) % entered during GG 59 /imbz4p01.psl (http://www.tinaja.com/psutils/imbz4p01.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) /bernstein (http://graphics.idav.ucdavis.edu/education/CAGDNotes/Bernstein-Polynomials.pdf) /ellipse4.psl (http://www.tinaja.com/glib/ellipse4.psl) /wnhsl (http://www.tinaja.com/whatnu05.asp#hsl) /stalac.pdf (http://www.tinaja.com/glib/stalac.pdf) /santa01 (http://www.tinaja.com/santa01.asp) /imxytab.psl (http://www.tinaja.com/psutils/imxytab.psl) /nonlingr.pdf (http://www.tinaja.com/glib/nonlingr.pdf) /unibmm01.psl (http://www.tinaja.com/psutils/unibm01.psl) /webimage.pdf (http://www.tinaja.com/glib/webimage.pdf) /keycor01.pdf (http://www.tinaja.com/glib/keycor01.pdf) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /basis.pdf (http://www.tinaja.com/glib/basis.pdf) /fixtlt01.psl (http://www.tinaja.com/psutils/fixtlt01.psl) /swingtlt.pdf (http://www.tinaja.com/glib/swingtlt.pdf) /swingt01.psl (http://www.tinaja.com/psutils/swingt01.psl) /perspec1.pdf (http://www.tinaja.com/glib/perspec1.pdf) /starwars.psl (http://www.tinaja.com/psutils/starwars.psl) /video901.jpg (http://www.tinaja.com/images/bargs/finalc9.jpg) /video901.bmp (http://www.tinaja.com/images/bargs/finalc9.bmp) /autobmf1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmfauto1.pdf (http://www.tinaja.com/glib/bmfauto1.pdf) /autobm1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmdemo1.bmp (http://www.tinaja.com/psutils/bmdemo1.bmp) /adobeifilter (http://www.adobe.com/support/downloads/product.jsp?product=1&platform=Windows) /myriadfont (http://store.adobe.com/type/browser/P/P_1706.html) /stonefont (http://store.adobe.com/type/browser/F/STAQ/F_STAQ-11705000.html) /cleartype (http://grc.com/cleartype.htm) /adobeacrobat (http://www.adobe.com/products/acrobat/main.html) /acroread (http://www.adobe.com/products/acrobat/readstep2.html) /dutchdare (http://www.darenet.nl/page/language.view/home) /sedn (news:///sci.electronics.design) /sern (news:///sci.electronics.repair) /mcmaster (http://www.mcmaster.com/ ) /smallparts (http://www.smallparts.com/ ) /grainger (http://www.grainger.com/Grainger/ ) /mouser (http://www.mouser.com/ ) /digikey (http://www.digikey.com/ ) /allied (http://www.alliedelec.com/ ) /newark (http://www.newark.com/) /thomasreg (http://www.thomasregister.com/) /whtnu05 (http://www.tinaja.com/whtnu05.asp) /refurblg.pdf (http://www.tinaja.com/glib/refurblg.pdf) /refurb.pdf (http://www.tinaja.com/glib/refurb.pdf) /advetorl.pdf (http://www.tinaja.com/glib/advetorl.pdf) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /marcia.pdf (http://www.tinaja.com/glib/marcia.pdf) /auctscne.pdf (http://www.tinaja.com/glib/auctscne.pdf) /ebaysell.pdf (http://www.tinaja.com/glib/ebaysell.pdf) /ebayspoof (mailto:spoof@ebay.com) /auct01links (http://www.tinaja.com/auct01.asp#links) /enhebay2.pdf (http://www.tinaja.com/glib/enhebay2.pdf) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /pdfflash.pdf(http://www.tinaja.com/glib/pdfflash.pdf) /adobejava (http://partners.adobe.com/public/developer/pdf/topic_js.html) /p3anim01.pdf (http://www.tinaja.com/glib/p3anim01.pdf) /xpdf (http://www.foolabs.com/xpdf/) /heapsort.pdf (http://www.tinaja.com/glib/heapsort.pdf) /strconv.pdf (http://www.tinaja.com/glib/strconv.pdf) /pdfrefman (http://partners.adobe.com/public/developer/pdf/index_reference.html) /uncompresspdf.api (http://www.tinaja.com/plugins/uncompressPDF.api) /adobeebooks (http://www.adobe.com/epaper/ebooks/main.html) /viewpdf1.psl (http://www.tinaja.com/psutils/viewpdf1.psl) /adobeacrobatsdk (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html) /adobejavascriptguide (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html#js) /wordfreq.pdf (http://www.tinaja.com/glib/wordfreq.pdf) /azauct01.pdf (http://www.tinaja.com/glib/azauct01.pdf) /startsdk.pdf (http://www.tinaja.com/glib/startsdk.pdf) /flatevue.pdf (http://www.tinaja.com/glib/flatvue.pdf) /wordfrq1.psl (http://www.tinaja.com/psutils/wordfrq1.psl) /otherwf (http://www.mytranslate.com/wordfrequency.htm) /homonyms (http://www.cooper.com/alan/homonym_list.html) /wrightauct (http://www.wrightbrosauctioneers.com/) /a1auct (http://www.a1auctionz.com/) /auctbroke (http://www.auctionbrokers.us/) /ronbrunk (http://www.brunksauction.com/) /americawest (http://www.yellowpages-ads.com/01231827) /azauctioneers (http://www.arizonaauctioneers.com/) /dickerson (http://www.cfdauction.com/) /wsmauct (http://www.westernsalesmanagement.com/) /asustore (http://property.asu.edu/) /uaauct (http://pacs.web.arizona.edu/pacs_home.html) /schoolauct (http://web.archive.org/web/20040229230404/http://www.dist.maricopa.edu/surplus/other.html) /haynieauct (http://www.chuckhaynieauctions.com/pages/1/index.htm) /crawfordauct (http://www.tumbleweedauction.com/) /mangold (http://www.azauctioneers.org/members/8402_OCMangold.asp) /tingle (http://brucetingleauctioneering.com/) /countass (http://www.soldyourway.com/) /southwestliq (http://www.swliquidators.com/) /maricopacoll (http://www.dist.maricopa.edu/surplus/) /sierraauct (http://www.sierraauction.com/) /cunninghamauct (http://www.auctionaz.com/) /auctappr (http://www.auctionandappraise.com/) /azauctionassn (http://www.azauctioneers.org/home.asp) /natauctionassn (http://www.auctioneers.org/) /azclassifieds (http://www.arizclassified.com/classifieds/index.inn) /azrepublic (http://www.azcentral.com/class/merch/) /tudailystar (http://classified.tucson.com/index.php?site_name=citizen) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /busonly.psl (http://www.tinaja.com/psutils/busonly.psl) /rebound1.psl (http://www.tinaja.com/glib/rebound1.psl) /rebound1.pdf (http://www.tinaja.com/glib/rebound1.pdf) /funfield.pdf (http://www.tinaja.com/glib/funfield.pdf) /psar2img.pdf (http://www.tinaja.com/glib/psar2img.pdf) /dovebid (http://www.dovebid.com) /michaelfox (http://www.michaelfox.com) /mjauctions (http://www.mjauctions.com) /ucc (http://www.law.cornell.edu/ucc/) /arizlaw (http://www.azleg.state.az.us/ArizonaRevisedStatutes.asp) /vickrey (http://www.vanderbilt.edu/econ/reiley/papers/VickreyHistory.pdf) /whtnu04 (http://www.tinaja.com/whtnu04.asp) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /nutilt01.psl (http://www.tinaja.com/psutils/nutilt01.psl) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /dodbur01.psl (http://www.tinaja.com/psutils/dodbur01.psl) /ebayphen.pdf (http://www.tinaja.com/glib/ebayphen.pdf) /gallery.pdf (http://www.tinaja.com/glib/gallery.pdf) /histolog (http://www.tinaja.com/glib/histolog.pdf) /bmfonts (http://www.tinaja.com/glib/bmfonts.pdf) /dodbur (http://www.tinaja.com/glib/dodgebur.pdf) /ebayphoto (http://www.tinaja.com/glib/ebayfoto.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /phonenums (http://www.switchboard.com/bin/cgiqa.dll?MG=) /reversephone (http://www.reversephonedirectory.com/) /scholar (http://www.scholar.google.com/) /shieldsup (https://grc.com/x/ne.dll?bh0bkyd2) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /topozone (http://www.topozone.com/) /thomasreg (http://www.thomasregister.com/) /uhaul (http://www.uhaul.com/) /ups (http://www.ups.com/) /usps (http://www.usps.com/) /vrane (http://www.vrane.com) /wayback (http://web.archive.org/) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) /grainger (http://www.grainger.com/) /zipcodes (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /mcmaster (http://www.mcmaster.com/) /mscsupply (http://www.mscdirect.com/) /natauctioneers (http://www.auctioneers.org/) /newspapers (http://www.usnpl.com/) /norfolk (http://www.norfolkandwaay.com) /quickphrase (http://www.typingmaster.com/index.asp?go=quickphrase) /myebays (http://www.tinaja.com/glib/myebays.pdf) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /mapsonus (http://www6.mapsonus.com/) /aafont01 (http://www.tinaja.com/aafont01.asp) /froogle (http://www.froogle.com) /govliquidation (http://www.govliquidation.com) /intershipper (http://www.intershipper.com) /kelly (http://www.kbb.com) /paypal (https://www.paypal.com/refer/pal=don%40tinaja.com) /ebaysell (http://www.tinaja.com/glib/ebaysell.pdf) /ebaybuy (http://www.tinaja.com/glib/ebaybuy.pdf) /deja (http://groups.google.com/googlegroups/deja_announcement.html) /drhtml (http://www2.imagiware.com/RxHTML/) /fedex (http://www.fedex.com/us/) /currency (http://www.xe.net/ucc/) /terraserver (http://terraserver-usa.com/) /areacode (http://decoder.americom.com/cgi-bin/decoder.cgi) /asiansources (http://www.asia.globalsources.com/HOMEPAGES/ASOL/HOME) /ebaystore (http://stores.ebay.com/synergeticsabeja) /amazon (http://www.amazon.com/exec/obidos/redirect-home/donlancastersgur/) /aucres01 (http://www.tinaja.com/aucres01.asp) /auctlinks (http://www.tinaja.com/auct01.asp#links) /wayback (http://www.archive.org/web/web.php) /agilent (http://www.agilent.com) /fields01.psl (http://www.tinaja.com/glib/fields01.psl) /fields01.pdf (http://www.tinaja.com/glib/fields01.pdf) /maxwells (http://hyperphysics.phy-astr.gsu.edu/hbase/electric/maxeq.html#c3) /muse121 (http://www.tinaja.com/glib/muse121.pdf) /maxwellbook (http://www.amazon.com/exec/obidos/ISBN=0486606368/donlancastersgurA) /transtronics (http://www.transtronics.com) /sigview.pdf (http://www.tinaja.com/glib/sigview.pdf) /mscal28nd.asp (http://www.tinaja.com/mscal28nd.asp) /microchip (http://www.microchip.com) /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /numschip.psl (http://www.tinaja.com/glib/numschip.psl) /msd28a.asm (http://www.tinaja.com/glib/msd28a.asm) /lineartechnology (http://www.lineartechnology.com) /bmtypewr (http://www.tinaja/com/psutils/bmtypewr.psl) /distlang.pdf (http://www.tinaja.com/glib/distlang.pdf) /muse141 (http://www.tinaja.com/glib/muse141.pdf) /screenthief (http://www.keyscreen.com/KeyScreen(s)5/scrnthf.htm) /giffont (http://www.tinaja.com/bmfonts/giffont1.bmp) /f507bg.txt (http://www.tinaja.com/bmfonts/f507bg.txt) /f507bg.psl (http://www.tinaja.com/bmfonts/f507bg.psl) /f507bg.pdf (http://www.tinaja.com/bmfonts/f507bg.pdf) /f607bg.txt (http://www.tinaja.com/bmfonts/f607bg.txt) /f707bg.txt (http://www.tinaja.com/bmfonts/f707bg.txt) /imgwrds1.psl (http://www.tinaja.com/psutils/imgwrds1.psl) /bmfont01 (http://www.tinaja.com/bmfont01.asp) /expbmp.psl (http://www.tinaja.com/glib/expbmp.psl) /kikisu (http://www.tinaja.com/images/bargs/ki710101.jpg) /hp3336a (http://www.tinaja.com/images/bargs/hp333601.jpg) /bmtransfer (http://www.tinaja.com/bmfonts/lettex01.bmp) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /histolog.psl (http://www.tinaja.com/glib/histolog.psl) /site01 (http://www.tinaja.com/site01.asp) /dayproc1.psl (http://www.tinaja.com/psutils/dayproc1.psl) /trail30.psl (http://www.tinaja.com/psutils/trail30.psl) /logrptm1.psl (http://www.tinaja.com/psutils/logrptm1.psl) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /powerfit (http://www.tinaja.com/glib/powerfit.pdf) /pssort (http://www.tinaja.com/glib/pssort.pdf) /heapsort (http://www.tinaja.com/glib/heapsort.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /pseudo01 (http://www.tinaja.com/pseudo01.asp) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /muse89 (http://www.tinaja.com/glib/muse89.pdf) /muse151 (http://www.tinaja.com/glib/muse151.pdf) /muse153 (http://www.tinaja.com/glib/muse153.pdf) /pssecrets (http://www.tinaja.com/glib/pssecrets.pdf) /bouncy (http://www.tinaja.com/glib/bouncy.pdf) /vectstep (http://www.tinaja.com/glib/vectstep.pdf) /muse102 (http://www.tinaja.com/glib/muse102.pdf) /onesword (http://www.tinaja.com/text/onesword.html) /emergop2 (http://www.tinaja.com/glib/emergop2.pdf) /wave01 (http://www.tinaja.com/wave01.asp) /chaincode (http://www.tinaja.com/text/chain01.html) /muse152 (http://www.tinaja.com/glib/muse152.pdf) /atg1 (http://www.tinaja.com/glib/atg1.pdf) /hack62 (http://www.tinaja.com/glib/hack62.pdf) /psinscrt (http://www.tinaja.com/glib/psinscrt.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /thefern (http://www.tinaja.com/psutils/fern2img.pdf) /cmoscb (http://www.amazon.com/exec/obidos/ISBN%3D0750699434/donlancastersgurA/002-0496817-3688016) /activecb (http://www.amazon.com/exec/obidos/ISBN%3D075062986X/donlancastersgurA/002-0496817-3688016) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /nss (http://www.caves.org) /sinquest (http://www.tinaja.com/glib/sinquest.pdf) /askguru (http://www.tinaja.com/glair01.asp) /assycb (http://www.amazon.com/exec/obidos/ISBN%3D0672223317/donlancastersgurA/002-3338585-9572047) /muse105 (http://www.tinaja.com/glib/muse105.pdf) /muse107 (http://www.tinaja.com/glib/muse107.pdf) /resbn90 (http://www.tinaja.com/glib/resbn90.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /testdemo (http://www.tinaja.com/glib/FULL60-1.ASC) /mschips (http://www.tinaja.com/glib/mschips.pdf) /sigview (http://www.sigview.com) /ggsigview (http://www.tinaja.com/glib/sigview.pdf) /mock (http://www.technicalworks.com) /xtronics (http://www.xtronics.com/) /oshen (http://www.oshonsoft.com/pic.html) /heapps01 (http://www.tinaja.com/psutils/heapps01.psl) /distlangpdf (http://www.tinaja.com/glib/distlang.pdf) /strconv (http://www.tinaja.com/glib/strconv.pdf) /fancysort (http://linux.wku.edu/~lamonml/algor/sort) /presort (http://www.tinaja.com/psutils/presort1.psl) /psnt (http://www.tinaja.com/glib/psnt.pdf) /insort (http://www.tinaja.com/psutils/insort.ps) /bublsort (http://www.tinaja.com/psutils/bublsort.ps) /oldstrconv (http://www.tinaja.com/psutils/strconv.html) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /muse01 (http://www.tinaja.com/muse01.asp) /gonzopow (http://www.tinaja.com/glib/gonzopow.pdf) /analogeb (http://www.tinaja.com/glib/analogeb.pdf) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /flut01 (http://www.tinaja.com/flut01.asp) /clpng (news:///comp.lang.postscript) /ctpng (news:///comp.text.pdf) /yahoo (http://www.yahoo.com) /google (http://www.google.com) /scodes (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) /whois (http://www.networksolutions.com/en_US/whois/index.jhtml) /zekes (http://www.zekes.com) /logfileformat (http://www.microsoft.com/windows2000/en/server/iis/default.asp?url=/windows2000/en/server/iis/htm/core/iicnvlg.htm) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /logrpt01.log (http://www.tinaja.com/psutils/logrpt01.log) /ex031126 (http://www.tinaja.com/psutils/ex031126.log) /picup01 (http://www.tinaja.com/picup01.asp) /webwb01 (http://www.tinaja.com/webwb01.asp) /muse90 (http://www.tinaja.com/glib/muse90.pdf) /vismagsn (http://www.tinaja.com/glib/vismagsn.psl) /vismagsn.pdf (http://www.tinaja.com/glib/vismagsn.pdf) /msquant (http://www.tinaja.com/glib/msquant.psl) /optjit01 (http://www.tinaja.com/psutils/optjit01.psl) /optjit01demo (http://www.tinaja.com/psutils/optjit01.pdf) /qall01 (http://www.tinaja.com/psutils/qall01.psl) /deltapat (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.pdf (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.psl (http://www.tinaja.com/psutils/deltapat.psl) /mindist1 (http://www.tinaja.com/glib/mindist1.pdf) /deltams1 (http://www.tinaja.com/glib/deltams1.pdf) /grabjpg (http://www.tinaja.com/psutils/grabjpg.psl) /gallery (http://www.tinaja.com/glib/gallery.pdf) /nutour01 (http://wwww.tinaja.com/nutour01.pdf) /linkpdf1 (http://www.tinaja.com/glib/linkpdf1.html) /ebayfoto (http://www.tinaja.com/glib/ebayfoto.pdf) /jpeg2pdf.html (http://www.tinaja.com/text/jpeg2pdf.html) /pdf2bmp (http://www.tinaja.com/psutils/pdf2bmp.psl) /bitmfont (http://www.tinaja.com/psutils/bitmfont.txt) /antifontpsl (http://www.tinaja.com/psutils/antifont.psl) /antifonttxt (http://www.tinaja.com/psutils/antifont.txt) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /swingtlt (http://www.tinaja.com/glib/swingtlt.pdf) /newsamoe (news:///alt.marketing/online.ebay) /webtrends (http://www.netiq.com/webtrends/default.asp) /stegan (http://63.140.207.28/books/bkwater.asp) /nodi (http://www.pages.ebay.com/help/community/notice-infringe2.pdf) /ebayvero (http://www.pages.ebay.com/help/community/vero-program.html) /aboutme (http://members.ebay.com/aboutme/abeja/) /magfill2 (http://www.tinaja.com/psutils/magfill2.psl) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /waywere (http://www.tinaja.com/glib/waywere.pdf) /nikon (http://www.nikon.com) /bayer (http://www.coreco.com/Web/wbtools3.nsf/0/87fce126f109ea3a05256c7100591c9a?OpenDocument) /hewpack (http://www.hp.com) /auct01 (http://www.tinaja.com/auct01.asp) /blat01 (http://www.tinaja.com/blat01.asp) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /autourl (http://www.tinaja.com/glib/autourl.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msintrosource (http://www.tinaja.com/glib/msintro1.psl) /knockout (http://www.tinaja.com/glib/knockout.bmp) /stepsynt (http://www.tinaja.com/glib/stepsynt.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msinprop (http://www.tinaja.com/glib/msinprop.pdf) /muse106 (http://www.tinaja.com/glib/muse106.pdf) /muse142 (http://www.tinaja.com/glib/muse142.pdf) /math01 (http://www.tinaja.com/math01.asp) /cubic01 (http://www.tinaja.com/cubic01.asp) /bez4pts (http://www.tinaja.com/glib/bez4pts.pdf) /muse145 (http://www.tinaja.com/glib/muse145.pdf) /muse148 (http://www.tinaja.com/glib/muse148.pdf) /curveft3 (http://www.tinaja.com/psutils/curveft3.psl) /fuzzybez (http://www.tinaja.com/glib/fuzzybez.pdf) /oldfuzzybez (http://www.tinaja.com/text/fuzzybez.html) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /nowhit01 (http://www.tinaja.com/psutils/nowhit01.psl) /blender (http://www.tinaja.com/psutils/blender.psl) /speedup2 (http://www.tinaja.com/glib/speedup2.pdf) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /imgviewer32 (http://www.arcatapet.net/imgv32.cfm) /basis (http://www.tinaja.com/glib/basis.pdf) /expbmp (http://www.tinaja.com/glib/expbmp.pdf) /expbmp.pdf (http://www.tinaja.com/glib/expbmp.pdf) /dodbur01 (http://www.tinaja.com/psutils/dodbur01.psl) /dodgebur (http://www.tinaja.com/glib/dodgebur.pdf) /magfill1 (http://www.tinaja.com/psutils/magfill1.psl) /swingt01 (http://www.tinaja.com/psutils/swingt01.psl) /before01 (http://www.tinaja.com/images/bargs/marcon01.jpg) /during01 (http://www.tinaja.com/images/bargs/marcon01.bmp) /after01 (http://www.tinaja.com/images/bargs/marconz1.jpg) /repobmp (http://www.tinaja.com/glib/repobmp.pdf) /basis01 (http://www.tinaja.com/glib/basis.pdf) /arcata (http://www.arcatapet.net/imgv32.cfm) /comparebmp (http://www.designer-info.com/Writing/bmp_tiff_jpeg_gif.htm) /imagimag (http://www.tinaja.com/glib/imagimag.pdf) /myebays (http://www.tinaja.com/glib/myebays.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /aafont01 (http://www.tinaja.com/aafont01.asp) /here1 (http://village.infoweb.ne.jp/~fwhw1257/study/bmpform.htm) /here2 (http://www.daubnet.com/formats/BMP.html) /bittype (http://www.tinaja.com/psutils/pdf2bmp.psl) /photocombine (http://www.tinaja.com/psutils/blender.psl) /psl (http://www.tinaja.com/psutils/) % dummy temp /psl1 (http://www.tinaja.com/psutils/pdf2bmp.psl) /psl2 (http://www.tinaja.com/psutils/acatdata.psl) /psl3 (http://www.tinaja.com/psutils/catwords.psl) /psl4 (http://www.tinaja.com/psutils/graburls.psl) /psl5 (http://www.tinaja.com/psutils/blender.psl) /psl6 (http://www.tinaja.com/psutils/catools1.psl) /psl7 (http://www.tinaja.com/psutils/strconv.html) /psl8 (http://www.tinaja.com/psutils/bodcat.psl) /psl9 (http://www.tinaja.com/psutils/flatvue1.psl) /psl10 (http://www.tinaja.com/psutils/fern2img.psl) /psl11 (http://www.tinaja.com/psutils/flutools.psl) /psl12 (http://www.tinaja.com/psutils/mscal156q.psl) /psl13 (http://www.tinaja.com/psutils/weblogu2.psl) /psl14 (http://www.tinaja.com/psutils/pfa2pfb.psl) /psl15 (http://www.tinaja.com/psutils/pfb2pfa.psl) /psl16 (http://www.tinaja.com/glib/psdisk03.psl) /psl17 (http://www.tinaja.com/psutils/disktool.psl) /psl18 (http://www.tinaja.com/glib/psinscrt.psl) /psl19 (http://www.tinaja.com/glib/pssearch.psl) /psl20 (http://www.tinaja.com/text/refsum1.html) /psl21 (http://www.tinaja.com/text/reflog1.html) /psl22 (http://www.tinaja.com/psutils/reflog1.psl) /psl23 (http://www.tinaja.com/psutils/refsum1.psl) /psl24 (http://www.tinaja.com/psutils/searepl.psl) /psl25 (http://www.tinaja.com/psutils/weberru2.psl) /psl26 (http://www.tinaja.com/psutils/grabsrch.psl) /psl27 (http://www.tinaja.com/psutils/grabrefs.psl) /magsn01 (http://www.tinaja.com/magsn01.asp) /gonzoutils (http://www.tinaja.com/post01.asp#gonzo) /disktool (http://www.tinaja.com/psutils/disktool.ps) /elesimp (http://www.tinaja.com/glib/elesimp.pdf) /tn5603 (http://partners.adobe.com/asn/developer/pdfs/tn/TN5603.Filters.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /fern (http://www.tinaja.com/psutils/fern2img.pdf) /oldfern (http://www.tinaja.com/psutils/fernx1.pdf) /acrosdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /refman2 (http://partners.adobe.com/asn/developer/pdfs/tn/psrefman.pdf) /refman3 (http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf) /s3011 (http://partners.adobe.com/asn/developer/pdfs/tn/PS3010and3011.Supplement.pdf) /s2011 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2011.supplement.pdf) /s2012 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2012.supplement.pdf) /s2013 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2013.supplement.pdf) /s2014 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2014.supplement.pdf) /s2015 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2015.supplement.pdf) /s2016 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2016.supplement.pdf) /ghost (http://www.cs.wisc.edu/~ghost/) /distlang (http://www.tinaja.com/psutils/distlang.html) /adobepst (http://partners.adobe.com/asn/developer/technotes/) /maildon (mailto:don@tinaja.com) /tinaja (http://www.tinaja.com) /adobe (http://www.adobe.com) /adobesdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /borland (http://www.borland.com/products/downloads/download_cbuilder.html) /ebay (http://cgi6.ebay.com/ws/eBayISAPI.dll?ViewSellersOtherItems&userid=abeja&completed=0&sort=2&since=-1&include=0&page=1&rows=100) /searepl (http://www.tinaja.com/psutils/searepl.psl) /aasdk (http://www.tinaja.com/plugins/AboutAcrobatSDK.api) /uncomp (http://www.tinaja.com/plugins/UncompressPDF.api) /addimage (http://www.tinaja.com/plugins/AddImage.api) /samplejpg (http://www.tinaja.com/plugins/sample.jpg) /transparency (http://www.tinaja.com/plugins/Transparency.api) /threerects (http://www.tinaja.com/plugins/threerects.pdf) /watermark (http://www.tinaja.com/plugins/Watermark.api) /verifyurls (http://www.tinaja.com/plugins/VerifyURLS.api) /flate (http://www.tinaja.com/glib/flatvue.pdf) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /advt01 (http://www.tinaja.com/advt01.asp) /amlink01 (http://www.tinaja.com/amlink01.asp) /ng1 (news:///comp.text.pdf) /ng2 (news:///comp.lang.postscript) /msc++ (http://msdn.microsoft.com/visualc/productinfo/default.asp) /degub (http://www.tinaja.com/glib/degub.pdf) % dead /ghostscript (http://www.artifex.com/pressreleases/GS70.htm) /demox.psl (http://www.tinaja.com/glib/g9demox.psl) /demox.pdf (http://www.tinaja.com/glib/g9demox.pdf) /demo.pdf (http://www.tinaja.com/glib/g9demo.pdf) /flatvue (http://www.tinaja.com/glib/flatvue.psl) /pdfrefman (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /psrefman (http://partners.adobe.com/asn/developer/technotes/postscript.html) /pdfmrm (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /tipdf (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /asdk (http://partners.adobe.com/asn/developer/acrosdk) /mtcr (http://support.adobe.com/devsup/devsup.nsf/docs/51864.htm) /flatvue1 (http://www.tinaja.com/psutils/flatvue1.psl) /acrob01 (http://www.tinaja.com/acrob01.asp) /post01 (http://www.tinaja.com/post01.asp) /info01 (http://www.tinaja.com/info01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /energfun (http://www.tinaja.com/glib/energfun.pdf) { /tilley (http://www.tilleyfoundation.com) /mnglobal (http://www.mnglobal.com/energy/pg2.htm) /keely (http://www.keelynet.com) /evolve (http://www.evolvedtechnology.com) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /resbn58 (http://www.tinaja.com/glib/resbn58.pdf) /bppt (http://www.batterypoweronline.com) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /energfun (http://www.tinaja.com/glib/energfun.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /adobe (http://www.adobe.com) /netscape (http://www.netscape.com) /gallypsl (http://www.tinaja.com/galley1.psl) /gallypdf (http://www.tinaja.com/galley1.pdf) /atn5150 (http://partners.adobe.com/asn/developer/acrosdk/docs/createpdfapi/pdfmarkReference.pdf) /nutour (http://www.tinaja.com/bargains/nutour02.pdf) /nutoursource (http://www.tinaja.com/bargains/nutour02.psl) /bwhistle (http://www.tinaja.com/glib/bwhistle.pdf) /gonzo1 (http://www.tinaja.com/post01.asp#gonzo) /barg01 (http://www.tinaja.com/barg01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /z1 (http://www.tinaja.com/bargains/thumb/albradz2.jpg) /z2 (http://www.tinaja.com/bargains/sbtesteq.asp) /z3 (http://www.tinaja.com/images/bargs/albrad02.jpg) /z4 (http://www.tinaja.com/bargains/thumb/tutenaz2.jpg) /z5 (http://www.tinaja.com/bargains/sbphone.asp) /z6 (http://www.tinaja.com/images/bargs/tutena02.jpg) /sourceme (http://www.tinaja.com/glib/gallery.psl) /sourceme2 (http://www.tinaja.com/glib/autourl.psl) } pop >> {mark exch /eurl cvx ] cvx def} forall %%%%%%%%%%%%%%%% New colorizer patches %%%%%%%%%%%%%%%%%% /boxgrays 0.899 def /grayshade boxgrays def /mastergray boxgrays def /staytint {0.33 setgray} def /staytint1 {0.25 setgray} def /showadgrays true def /red {0 settint} def /Zmacro {staytint /ypos ypos 2 add def 72 300 div setlinewidth xpos ypos moveto txtwide 0 rlineto stroke /ypos ypos -2 add def tintoff} def % hair rule /amacro {(zy0) stringmacro /ypos ypos ypara add def 0.33 setgray } def % start drop cap /bmacro {(iFy1) stringmacro /ypos ypos ypara add def black} def % finish drop cap % Gonzo character colorizer /blueon {mark /blue cvx 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /blueoff {mark /beige cvx 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton {mark 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1 {mark 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark beige cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1p {mark /burple cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1r {mark /red cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark /beige cvx % try for beige after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tintoff {mark 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def %%%%%%%%%%%%%% COMPACT VERSION OF COLORIZER II %%%%%%%%%%%%%%%%%%%%%% /settint {dup /currenttint exch store 5.999 mul dup floor cvi /&cbar exch store dup floor sub /&cwt exch store [ {/setgray [ /dup cvx 0.3 &cwt 0.59 mul add /ge cvx [1 /exch cvx &cwt 0.59 mul 0.30 add /sub cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx ] cvx [ &cwt 0.59 mul 0.3 add /div cvx /dup cvx &cwt /mul cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub 0.3 mul add /ge cvx [1 &cwt sub 0.3 mul 0.59 add /sub cvx &cwt 0.3 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx /exch cvx 1 /exch cvx] cvx [1 &cwt sub 0.3 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 &cwt 0.11 mul add /ge cvx [&cwt 0.11 mul 0.59 add /sub cvx 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx 1 /exch cvx] cvx [0 /exch cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub mul 0.11 add /ge cvx [1 &cwt sub 0.59 mul 0.11 add /sub cvx &cwt 0.59 mul 0.30 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx 1] cvx [0 /exch cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.11 &cwt 0.30 mul add /ge cvx[&cwt 0.30 mul 0.11 add /sub cvx 1 &cwt sub 0.30 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx 1] cvx [ &cwt 0.30 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx /exch cvx 0 /exch cvx ] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} {/setgray [ /dup cvx 0.30 1 &cwt sub 0.11 mul add /ge cvx[ 1 /exch cvx 1 &cwt sub 0.11 mul 0.30 add /sub cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx ] cvx [ 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx 0 /exch cvx] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} ] &cbar get exec exec} bind def /beige {0.10 settint} def % examples of convenience operators /aqua {0.52 settint} def /blue {0.67 settint} def /lime {0.44 settint} def /burple {0.75 settint} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /guru { gonzo begin ps.util.1 begin printerror nuisance begin} def % guru % activate gonzo utilities 50 50 10 setgrid % create grid % 56 61 showgrid /setpagefonts { /cstretch 0.015 def /sstretch 0.015 def /font0 /StoneSans-Bold 1.6 gonzofont /font1 /StoneSans 0.95 gonzofont /font2 /StoneSans [0.95 0 0.25 0.95 0 0 ] gonzofont /font4 /StoneSans 0.85 gonzofont /font3 /StoneSans-Bold 0.85 gonzofont /font6 /StoneSans-Bold 0.85 gonzofont /font7 /StoneSans-Bold 1.05 gonzofont % subheaders /font8 /StoneSans-Bold [0.65 0 0 0.65 0 0.4] gonzofont /txtwide 36 store /yinc 1.2 store /kern 0.1 store /pm 1.5 store aqua 0.33 setgray font1 black /amacro { mark /aqua cvx 0.33 /setgray cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /bmacro { mark /black cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /shiftin {xpos /xposhold exch store /xpos xpos 3 add store} def /shiftout {/xpos xposhold store} def /texttop 51 store /textleft 3 store /cmacro {aqua 0.25 setgray (znhL7) stringmacro /xpos xpos 1.7 sub store /ypos ypos .1 sub def } def % left title /dmacro {black (pL1hz) stringmacro /xpos xpos 1.7 add store /ypos ypos .1 add def} def % normal text after centered title /fmacro % try and fake | {mark /gsave cvx /currentpoint cvx /moveto cvx 0.1 /setlinewidth cvx 0 0.65 /rlineto cvx /stroke cvx /grestore cvx ] cvx printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def } def setpagefonts % -2 50.5 (optional header here \274) cl %% Set document opening conventions. Note DOCVIEW limited. [/CropBox [0 0 520 620] % set the wierd size /PAGES pdfmark [ {Catalog} << /ViewerPreferences << /FitWindow true /CenterWindow true >> /PageLayout /OneColumn % continous /Pagemode /UseNone % no thumbs /View [/XYZ null null 1 ] % force 100% >> /PUT pdfmark %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% page manager /pagenum 1 store /startnewpage { black beige 0.35 setgray 21 -2.5 (|3\320|j|j) ggnum 10 string cvs mergestr (|j.|j) mergestr pagenum 10 string cvs mergestr (|j|j\320) mergestr cc aqua showpage %% start next page /pagenum pagenum 1 add store 50 50 10 setgrid % create grid setpagefonts font1 textleft texttop } def /su {surl font6} store /to {tinton1 font6} store /tx {tintoff font1} store /tabs [7 20] store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % //// REVISED DIPDRAW PROC ///// electronics begin % dipdraw - draws a dip integrated circuit. (old code to be improved) % Enter with currentpoint set to pin 1 and scale % set so that 1.0 = distance between pins. Then % do a numpins-(name)-(hipins)-(lopins) dipdraw % Pin callouts preceeded by / will be complemented. % main dipdraw entry: /dipdraw { save /dipsnap exch def /hipins exch def /lopins exch def /chipname exch def /numpins exch def mark 0 0 0 0 0 0 0 0 0 0 0 0 % temp patch /howlong {numpins 2 div cvi 1 add} def /howhigh {4 numpins 36 ge {1 add} if} def /stub {howhigh 1.4 sub 2 div} def % internal service subs start here: /pinproc {numpins 2 div cvi{newpath 0 cpos 0.37 0 360 arc gsave 1 setgray fill grestore 0.067 setlinewidth stroke pin# 5 string cvs dup stringwidth pop 2 div neg cpos 0.2 sub moveto show 1 0 translate /pin# pin# dir add def} repeat } def /stretchprint { dup stringwidth pop 2 div neg exch length 1 sub stretch mul 2 div sub 0 moveto callout (/) anchorsearch true eq {currentpoint exch stretch add exch moveto pop dup /callout exch def stringwidth pop callout length 1 sub stretch mul add /barwide exch def 0.033 setlinewidth gsave currentpoint 0.55 add moveto barwide 0 rlineto stroke grestore} if stretch 0 callout ashow pop} def /pincallouts{0 vpos translate {workstring ( ) search true eq {/callout exch def pop /workstring exch def callout stretchprint 1 0 translate}{dup /callout exch def stretchprint exit } ifelse}loop} def % actual dipdraw process starts here: % ........ the outline: gsave 1 setlinecap 1 setlinejoin currentpoint translate newpath -1 howhigh 2 div 0.7 -90 90 arc 0 stub rlineto howlong 0 rlineto 0 howhigh neg rlineto howlong neg 0 rlineto closepath gsave grayshade setgray fill grestore grayshade dup 1 ne {0.33}{0} ifelse setgray 0.36 setlinewidth stroke newpath -.55 .45 0.15 0 360 arc fill black % ........ pin circles and numbers: /Helvetica-Bold findfont [0.4 0 0 0.55 0 0] makefont setfont gsave /pin# 1 def /dir 1 def /cpos 0 def pinproc grestore gsave /pin# numpins def /dir -1 def /cpos howhigh def pinproc grestore % pin callouts: /Helvetica findfont [0.35 0 0 0.6 0 0] makefont setfont /stretch 0.033 def gsave /workstring hipins def /vpos 0.6 def pincallouts grestore gsave /workstring lopins def /vpos howhigh 1.05 sub def pincallouts grestore % device number: grayshade 1 ne {0.33}{0} ifelse setgray /Helvetica-Bold findfont [1.4 0 0 1 0 0] makefont setfont /stretch 0.05 def gsave numpins 2 div 1 sub 2 div howhigh 2 div 0.33 sub translate chipname dup /callout exch def stretchprint grestore black % end cleanup: grestore grestore cleartomark dipsnap restore} def end % get out of electronics? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Burplebox routines /burpwide 29.5 store /burpcom {save /burpx exch store /bht exch store save /burp1 exch store xpos ypos translate -1 .2 mt bht yinc mul .4 add pd burpwide pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store /burpwidew 32 store /burpcomw {save /burpx exch store /bht exch store save /burp1 exch store xpos 1 sub ypos translate 0 .2 mt bht yinc mul .4 add pd burpwidew pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store { /burplebox1 {1.5 burpcom} store /burplebox1.5 {2 burpcom} store /burplebox2 {2.5 burpcom} store /burplebox2.5 {3 burpcom} store /burplebox3 {3.5 burpcom} store /burplebox3.5 {4 burpcom} store /burplebox4 {4.5 burpcom} store /burplebox4.5 {5 burpcom} store /burplebox5 {5.5 burpcom} store /burplebox5.5 {6 burpcom} store /burplebox6 {6.5 burpcom} store /burplebox6.5 {7 burpcom} store /burplebox7 {7.5 burpcom} store /burplebox7.5 {8 burpcom} store /burplebox8 {8.5 burpcom} store /burplebox8.5 {9 burpcom} store /burplebox9 {9.5 burpcom} store /burplebox9.5 {10 burpcom} store /burplebox10 {10.5 burpcom} store /burplebox10.5 {11 burpcom} store /burplebox11 {11.5 burpcom} store /burplebox11.5 {12 burpcom} store /burplebox12 {12.5 burpcom} store /burplebox11w {11.5 burpcomw} store /burplebox12.5 {13 burpcom} store /burplebox13 {13.5 burpcom} store /burplebox13.5 {14 burpcom} store /burplebox14 {14.5 burpcom} store /burplebox14.5 {15 burpcom} store /burplebox15{15.5 burpcom} store /burplebox15.5{16 burpcom} store /burplebox16 {16.5 burpcom} store /burplebox16.5 {17 burpcom} store /burplebox17 {17.5 burpcom} store /burplebox17.5 {18 burpcom} store /burplebox18 {18.5 burpcom} store /burplebox18.5 {19 burpcom} store /burplebox19 {19.5 burpcom} store /burplebox19.5 {20 burpcom} store /burplebox20 {20.5 burpcom} store /burplebox21.5 {22 burpcom} store /burplebox22{22.5 burpcom} store /burplebox22.5 {23 burpcom} store /burplebox23 {23.5 burpcom} store /burplebox23.5 {24 burpcom} store /burplebox24{24.5 burpcom} store /burplebox25{25.5 burpcom} store /burplebox25.5{26 burpcom} store /burplebox27{27.5 burpcom} store /burplebox28 {28.5 burpcom} store /burplebox28.5 {29 burpcom} store /burplebox30 {30.5 burpcom} store /burplebox31 {31.5 burpcom} store /burplebox31.5 {32 burpcom} store /burplebox33.5 {34 burpcom} store /burplebox34 {34.5 burpcom} store /burplebox38 {38.5 burpcom} store /burplebox38.5{39 burpcom} store /burplebox40{40.5 burpcom} store /burplebox40.5{41 burpcom} store /burplebox41.5{42 burpcom} store /burplebox42 {42.5 burpcom} store /burplebox42.5{43 burpcom} store % nearly a full page /burplebox43 {43.5 burpcom} store } pop 1 1 50 {cvi /size exch store % make all the burpleboxes (burplebox) size 20 string cvs mergestr cvn mark size 0.5 add /burpcom cvx ] cvx store (burplebox) size 0.5 add 20 string cvs mergestr cvn mark size 1 add /burpcom cvx ] cvx store } for /burplebox34w{34.5 burpcomw} store /burplebox34.5w{35 burpcomw} store /burplebox38w{38.5 burpcomw} store /burplebox38.5w{39 burpcomw} store /burplebox40w{40.5 burpcomw} store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % New sequence of auto positioning figures... % combined autopos jpeg conversion and hotlink: /autoimageandlink1 {save /af1 exch store xpos ypos yinc add translate 6.3 -14.1 684 384 .033 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/cabsvid1.jpg) % url first % (http://www.tinaja.com/images/bargs/ce47u25v.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\78_ebayskill_VI\\cabsvid1.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink2 {save /af2 exch store xpos ypos yinc add translate 18 -11.8 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/ce47u25v.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\ce47u25v.jpg) jpegimageprocwithlink af2 restore} store /autoimageandlink3 {save /af1 exch store xpos ypos yinc add translate 1 -12 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3x.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\origpwri.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink4 {save /af2 exch store xpos ypos yinc add translate 18 -12 -1.5 add 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\finpwri.jpg) jpegimageprocwithlink af2 restore} store /jpegimageprocwithlink { % hoffset voffset hres vres save /snap2 exch def /infilename exch store % grab passed pix file /inurllink exch store % grab link filename /photoscale exch store /vpixels exch store /hpixels exch store translate % adjust position for final figure ??? inurllink setareaurl % autolink sizing /DeviceRGB setcolorspace % pick color model 0 0 translate % set page position hpixels vpixels scale % magnify unit square photoscale dup scale /infile infilename (r) file def % establish input read file /Data {infile /DCTDecode filter} def % define a data source << % start image dicationary /ImageType 1 % always one /Width hpixels % JPEG width in pixels /Height vpixels % JPEG height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource Data % proc to get filtered JPEG /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image operator ypos snap2 restore /ypos exch def } def /setareaurl { % for auto include routine /cururlname exch store mark % start pdfmark /Rect [ 0 0 hpixels photoscale mul vpixels photoscale mul ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% ordinary tracking figures /autofig1 { /figadvance 10 store save /snap1 exch store xpos 2 add ypos figadvance sub translate figure1 snap1 restore /ypos ypos figadvance sub yinc sub store } store /autofig2 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure2 snap2 restore /ypos ypos figadvance sub yinc sub store } store /autofig3 { /figadvance 13 store save /snap22 exch store xpos 2 add ypos figadvance sub translate figure3 snap22 restore /ypos ypos figadvance sub yinc sub store } store /autofig4 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure4 snap2 restore /ypos ypos figadvance sub yinc sub store } store %%%%%%%%%%%%%%% fixed position figures here %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% begin current gg figures removed many previous %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % figure1 for gg88 not used because of marconi overwrite /figure1 {2.5 0 712 568 pixfilename1 jpegimageproc} def % image link /figure2 {21.5 0 712 568 pixfilename2 jpegimageproc} def % image link /hotspot1 { 2.5 0 20.5 14.3 (http://www.tinaja.com/images/bargs/marcon01.jpg) setareaurl} def /hotspot2 { 21.5 0 39.5 14.3 (http://www.tinaja.com/images/bargs/marconz1.jpg) setareaurl} def /pixfilename1 (C:\\windows\\desktop\\aaraw_pix\\marcon01.jpg) def /pixfilename2 (C:\\windows\\desktop\\aaraw_pix\\marconz1.jpg) def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % figure4 for gg83 /figure4 { save /snap3 exch store -5.5 -19.3 translate % position in box 0.8 dup scale /nicerainbowdatapatchedx [ [0.0 0.71 1.0] [0.002668 0.712655 1.0] [0.006003 0.715973 1.0] [0.00867101 0.718628 1.0] [0.012006 0.721946 1.0] [0.015341 0.725265 1.0] [0.018009 0.727919 1.0] [0.021344 0.731238 1.0] [0.024012 0.733893 1.0] [0.027347 0.737211 1.0] [0.030015 0.739866 1.0] % color 10 [0.03335 0.743184 1.0] [0.036018 0.745839 1.0] [0.039353 0.749157 1.0] [0.042021 0.751812 1.0] [0.045356 0.75513 1.0] [0.048024 0.757785 1.0] [0.050692 0.76044 1.0] [0.054027 0.763758 1.0] [0.056695 0.766413 1.0] % color 20 [0.06003 0.769731 1.0] [0.062698 0.772386 1.0] [0.066033 0.775705 1.0] [0.068701 0.778359 1.0] [0.072036 0.781678 1.0] [0.074704 0.784332 1.0] [0.078039 0.787651 1.0] [0.080707 0.790305 1.0] [0.084042 0.793624 1.0] [0.08671 0.796279 1.0] [0.090045 0.799597 1.0] [0.09338 0.802915 1.0] [0.096048 0.80557 1.0] [0.099383 0.808889 1.0] [0.102051 0.811543 1.0] [0.105386 0.814862 1.0] [0.107387 0.816853 1.0] [0.110722 0.820171 1.0] [0.112056 0.821498 1.0] [0.115391 0.824817 1.0] [0.116058 0.825481 1.0] [0.119393 0.828799 1.0] [0.119393 0.828799 1.0] [0.122728 0.832117 1.0] [0.122061 0.831454 1.0] [0.125396 0.834772 1.0] [0.124062 0.833445 1.0] [0.127397 0.836763 1.0] [0.125396 0.834772 1.0] [0.128731 0.83809 1.0] [0.12673 0.836099 1.0] [0.130065 0.839418 1.0] [0.128064 0.837427 1.0] [0.131399 0.840745 1.0] [0.129398 0.838754 1.0] [0.132733 0.842073 1.0] [0.131113 0.840461 1.0] [0.134448 0.843779 1.0] [0.133209 0.842547 1.0] [0.136544 0.845865 1.0] [0.135687 0.845012 1.0] [0.139022 0.84833 1.0] [0.138545 0.847856 1.0] [0.14188 0.851174 1.0] [0.141785 0.85108 1.0] [0.14512 0.854398 1.0] [0.145406 0.854682 1.0] [0.148741 0.858001 1.0] [0.149408 0.858665 1.0] [0.152743 0.861983 1.0] [0.15341 0.862647 1.0] [0.156745 0.865965 1.0] [0.157412 0.866629 1.0] [0.160747 0.869947 1.0] [0.161414 0.870611 1.0] [0.164749 0.873929 1.0] [0.165416 0.874593 1.0] [0.168751 0.877911 1.0] [0.169418 0.878575 1.0] [0.172753 0.881893 1.0] [0.17342 0.882557 1.0] [0.176755 0.885875 1.0] [0.177422 0.886539 1.0] [0.180757 0.889858 1.0] [0.181424 0.890521 1.0] [0.184759 0.89384 1.0] [0.185426 0.894503 1.0] [0.188761 0.897822 1.0] [0.189428 0.898485 1.0] [0.192763 0.901804 1.0] [0.193239 0.902278 1.0] [0.196574 0.905596 1.0] [0.197241 0.90626 1.0] [0.200576 0.909578 1.0] [0.201243 0.910242 1.0] [0.204578 0.91356 1.0] [0.206579 0.915551 1.0] [0.209914 0.91887 1.0] [0.214678 0.92361 1.0] [0.218013 0.926929 1.0] [0.225541 0.995372 1.0] [0.228876 0.991897 1.0] [0.238691 0.98167 1.0] [0.242026 0.978194 1.0] [0.254317 0.965385 1.0] [0.257652 1.0 1.0] [0.271183 1.0 1.0] [0.274518 1.0 1.0] [0.289478 0.928746 1.0] [0.292813 0.925271 1.0] [0.307868 0.909582 1.0] [0.311203 0.906107 1.0] [0.324924 0.891809 1.0] [0.328259 0.888334 1.0] [0.340551 0.875525 1.0] [0.343886 0.872049 1.0] [0.35452 0.860968 1.0] [0.357855 0.857493 1.0] [0.366831 0.84814 1.0] [0.370166 0.844664 1.0] [0.378341 0.836145 1.0] [0.381676 0.83267 1.0] [0.389051 0.824984 1.0] [0.392386 0.821509 1.0] [0.398961 0.814658 1.0] [0.402296 0.811182 1.0] [0.40807 0.805165 1.0] [0.411405 0.80169 1.0] [0.416474 0.796408 1.0] [0.419809 0.792932 1.0] [0.424879 0.78765 1.0] [0.428214 0.784175 1.0] [0.433283 0.778892 1.0] [0.436618 0.775417 1.0 0.01 sub ] [0.441782 0.770035 1.0 0.02 sub ] [0.445117 0.76656 1.0 0.03 sub ] [0.450187 0.761278 1.0 0.04 sub ] [0.453522 0.757802 1.0 0.05 sub ] [0.458591 0.75252 1.0 0.06 sub ] [0.461926 0.749045 1.0 0.07 sub ] [0.466995 0.743762 1.0 0.08 sub ] [0.47033 0.740287 1.0 0.09 sub ] [0.475552 0.734846 1.0 0.10 sub ] [0.478887 0.73137 1.0 0.11 sub ] [0.484061 0.725979 1.0 0.12 sub ] [0.487396 0.722503 1.0 0.125 sub ] [0.492589 0.717092 1.0 0.13 sub ] [0.495924 0.713617 1.0 0.125 sub ] [0.501041 0.708285 1.0 0.12 sub ] [0.504376 0.704809 1.0 0.11 sub ] [0.509511 0.699457 1.0 0.10 sub ] [0.512846 0.695982 1.0 0.09 sub] [0.518001 0.69061 1.0 0.08 sub ] [0.521336 0.687135 1.0 0.07 sub ] [0.526606 0.681644 1.0 0.06 sub ] [0.529941 0.678169 1.0 0.05 sub ] [0.534591 0.673323 1.0 0.04 sub ] [0.537926 0.669848 1.0 0.02 sub ] [0.542252 0.66534 1.0 0.01 sub ] [0.545587 0.661865 1.0 0.00 sub ] [0.549522 0.657764 1.0 0.00 sub ] [0.552857 0.654289 1.0] [0.556401 0.650595 1.0] [0.559736 0.64712 1.0] [0.562986 0.643734 1.0] [0.566321 0.640259 1.0] [0.56916 0.6373 1.0] [0.572495 0.633824 1.0] [0.574839 0.631382 1.0] [0.578174 0.627906 1.0] [0.580604 0.625374 1.0] [0.583939 0.621899 1.0] [0.586359 0.619377 1.0] [0.589694 0.615902 1.0] [0.592153 0.61334 1.0] [0.595488 0.609865 1.0] [0.597936 0.607313 1.0] [0.601271 0.603838 1.0] [0.603711 0.601296 1.0] [0.607046 0.59782 1.0] [0.609495 0.595269 1.0] [0.61283 0.591793 1.0] [0.615278 0.589242 1.0] [0.618613 0.585766 1.0] [0.621062 0.583214 1.0] [0.624397 0.579739 1.0] [0.626846 0.577187 1.0] [0.630181 0.573712 1.0] [0.632582 0.57121 1.0] [0.635917 0.567735 1.0] [0.638319 0.565232 1.0] [0.641654 0.561757 1.0] [0.644055 0.559255 1.0] [0.64739 0.55578 1.0] [0.649791 0.553277 1.0] [0.653126 0.549802 1.0] [0.655527 0.5473 1.0] [0.658862 0.543825 1.0] [0.661263 0.541322 1.0] [0.664598 0.537847 1.0] [0.667 0.535345 1.0] ] store /datax [ [0.60 0.60 0.48 0.24 0.60 0.60] [0.60 0.60 0.48 0.24 0.60 0.60] [0.00 0.00 0.36 0.12 0.48 0.48] [0.24 0.24 0.48 0.60 0.12 0.12] [0.12 0.12 0.24 0.48 0.36 0.36] [0.12 0.12 0.24 0.48 0.36 0.36] ] store % data grabbing routines /grabdata { % preget gets are probably faster /w0 datax yi get xi get store % these evaluate data /w1 datax yi get xi 1 add get store /w2 datax yi 1 add get xi get store /w3 datax yi 1 add get xi 1 add get store /x0 datax yi get xi 1 add get datax yi get xi 1 sub get sub 2 div store /x1 datax yi get xi 2 add get datax yi get xi get sub 2 div store /x2 datax yi 1 add get xi 1 add get datax yi get xi 1 add get sub 2 div store /x3 datax yi 2 add get xi get datax yi 1 add get xi get sub 2 div store /y0 datax yi 1 add get xi get datax yi 1 sub get xi get sub 2 div store /y1 datax yi 1 add get xi 1 add get datax yi 1 sub get xi 1 add get sub 2 div store /y2 datax yi 2 add get xi get datax yi get xi get sub 2 div store /y3 datax yi 2 add get xi 1 add get datax yi get xi 1 add get sub 2 div store /z0 x0 y0 mul store % this may be wrong. /z1 x1 y1 mul store /z2 x2 y2 mul store /z3 x3 y3 mul store false {/z0 0 store % temp defeat /z1 0 store /z2 0 store /z3 0 store } if } bind store % try fewer gets... /grabdata { % preget gets are probably faster /w0 datax yi get xi get store % these evaluate data /w1 datax yi get xi 1 add get store /w2 datax yi 1 add get xi get store /w3 datax yi 1 add get xi 1 add get store /x0 % datax yi get xi 1 add get w1 datax yi get xi 1 sub get sub 2 div store /x1 datax yi get xi 2 add get % datax yi get xi get w0 sub 2 div store /x2 % datax yi 1 add get xi 1 add get w3 datax yi 1 add get xi 1 sub get sub 2 div store /x3 datax yi 1 add get xi 2 add get % datax yi 1 add get xi get w2 sub 2 div store /y0 % datax yi 1 add get xi get w2 datax yi 1 sub get xi get sub 2 div store /y1 % datax yi 1 add get xi 1 add get w3 datax yi 1 sub get xi 1 add get sub 2 div store /y2 datax yi 2 add get xi get % datax yi get xi get w0 sub 2 div store /y3 datax yi 2 add get xi 1 add get % datax yi get xi 1 add get w1 sub 2 div store /z0 x0 y0 mul store % this may be wrong. /z1 x1 y1 mul store /z2 x2 y2 mul store /z3 x3 y3 mul store false {/z0 0 store % temp defeat /z1 0 store /z2 0 store /z3 0 store } if } bind store % coefficient def routines /findacoeffs { /a00 w0 store /a01 y0 store /a02 w0 -3 mul w2 3 mul add y0 -2 mul add y2 sub store /a03 w0 2 mul w2 -2 mul add y0 add y2 add store /a10 x0 store /a11 z0 store /a12 x0 -3 mul x2 3 mul add z0 -2 mul add z2 sub store /a13 x0 2 mul x2 -2 mul add z0 add z2 add store /a20 w0 -3 mul w1 3 mul add x0 -2 mul add x1 sub store /a21 y0 -3 mul y1 3 mul add z0 -2 mul add z1 sub store /a22 w0 9 mul w1 -9 mul add w2 -9 mul add w3 9 mul add x0 6 mul add x1 3 mul add x2 -6 mul add x3 -3 mul add y0 6 mul add y1 -6 mul add y2 3 mul add y3 -3 mul add z0 4 mul add z1 2 mul add z2 2 mul add z3 add store /a23 w0 -6 mul w1 6 mul add w2 6 mul add w3 -6 mul add x0 -4 mul add x1 -2 mul add x2 4 mul add x3 2 mul add y0 -3 mul add y1 3 mul add y2 -3 mul add y3 3 mul add z0 -2 mul add z1 neg add z2 -2 mul add z3 neg add store /a30 w0 2 mul w1 -2 mul add x0 add x1 add store /a31 y0 2 mul y1 -2 mul add z0 add z1 add store /a32 w0 -6 mul w1 6 mul add w2 6 mul add w3 -6 mul add x0 -3 mul add x1 -3 mul add x2 3 mul add x3 3 mul add y0 -4 mul add y1 4 mul add y2 -2 mul add y3 2 mul add z0 -2 mul add z1 -2 mul add z2 neg add z3 neg add store /a33 w0 4 mul w1 -4 mul add w2 -4 mul add w3 4 mul add x0 2 mul add x1 2 mul add x2 -2 mul add x3 -2 mul add y0 2 mul add y1 -2 mul add y2 2 mul add y3 -2 mul add z0 add z1 add z2 add z3 add store } bind store % actual bicubic calc /bicubiccalc { % creates a surface from sixteen cubic equations a00 a01 yr mul add a02 yr 2 exp mul add a03 yr 3 exp mul add a10 xr mul add a11 xr mul yr mul add a12 xr mul yr 2 exp mul add a13 xr mul yr 3 exp mul add a20 xr 2 exp mul add a21 xr 2 exp mul yr mul add a22 xr 2 exp mul yr 2 exp mul add a23 xr 2 exp mul yr 3 exp mul add a30 xr 3 exp mul add a31 xr 3 exp mul yr mul add a32 xr 3 exp mul yr 2 exp mul add a33 xr 3 exp mul yr 3 exp mul add } bind store % try to reduce exps? /bicubiccalc { % creates a surface from sixteen cubic equations /xx2 xr 2 exp store /xx3 xr 3 exp store /yy2 yr 2 exp store /yy3 yr 3 exp store { /xx2 xr dup mul store % avoid exp? slight penalty /xx3 xx2 xr mul store /yy2 yr dup mul store /yy3 yy2 yr mul store } pop a00 a01 yr mul add a02 yy2 mul add a03 yy3 mul add a10 xr mul add a11 xr mul yr mul add a12 xr mul yy2 mul add a13 xr mul yy3 mul add a20 xx2 mul add a21 xx2 mul yr mul add a22 xx2 mul yy2 mul add a23 xx2 mul yy3 mul add a30 xx3 mul add a31 xx3 mul yr mul add a32 xx3 mul yy2 mul add a33 xx3 mul yy3 mul add } bind store % possibly can create an a00 through a33 array and forall , eliminating % sixteen defs and sixteen variables. Also combines two procs % better yet, combine procs directly 30 on stack becomes seed for asfdasdf add % main controller code % enter dobicubic with position inside four dots as xx yy. Returns interpolated value /dobicubic { dup floor cvi dup /yi exch store sub /yr exch store % integer and residue dup floor cvi dup /xi exch store sub /xr exch store grabdata findacoeffs bicubiccalc } bind store % /////////// % there is NO WAY IN HELL this can be done sanely in postscript! % but timing returns TOO GOOD TO BE TRUE fraction of a millisecond! % WrONG!!! We are just barely doabe. % problems remain. Especially version 8 run??? % [ [0.60 0.60 0.48 0.24 0.60 0.60] % [0.60 0.60 0.48 0.24 0.60 0.60] % [0.00 0.00 0.36 0.12 0.48 0.48] % [0.24 0.24 0.48 0.60 0.12 0.12] % [0.12 0.12 0.24 0.48 0.36 0.36] % [0.12 0.12 0.24 0.48 0.36 0.36] ] %% 2,2 data is 0.48 3,3 data is 0.12 1 1 3 {/xbox exch store 1 1 3 {/ybox exch store 0 0.02 pop 0.02 0.99 {/xxx exch store 0 0.02 pop 0.02 0.99 {/yyy exch store xbox xxx add ybox yyy add dobicubic 200 mul 0.67 div 0.96 mul cvi % temp deglitcher dup 0 lt {pop 0} if % got a minus one? dup 200 gt {pop 200} if nicerainbowdatapatchedx exch get aload pop sethsbcolor xbox xxx add 10 mul ybox yyy add 10 mul mt 0.2 pop 0.2 pu 0.2 pop 0.2 pr 0.2 pop 0.2 pd closepath fill } for } for } for } for black 40 40 mt dot 40 10 mt dot 40 20 mt dot 40 30 mt dot 10 40 mt dot 10 10 mt dot 10 20 mt dot 10 30 mt dot 20 40 mt dot 20 10 mt dot 20 20 mt dot 20 30 mt dot 30 40 mt dot 30 10 mt dot 30 20 mt dot 30 30 mt dot snap3 restore } store % end figure 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end current figures %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Specific file info here /font; /Helvetica [0.7 0 0 0.7 0 0.4] gonzofont font1 /font- /Symbol 0.85 gonzofont aqua 0.33 setgray font0 /narrowx {/txtwide txtwide 8.5 sub store} store /widenx {/txtwide txtwide 8.5 add store} store /burpon {mark /burple cvx 0.33 /setgray cvx ] cvx % additional internal gonzo printlist exch 3 index exch put exch 1 add exch} def /burpoff {mark /aqua cvx 0 /setgray cvx ] cvx printlist exch 3 index exch put exch 1 add exch} def /darkenheader {save /headsnap exch store xpos 1 sub ypos 0.2 add translate 0.3 1 1 setrgbcolor 0 0 mt 3.2 pd burpwide pr 3.2 pu closepath fill headsnap restore} store % sssssssssssssssssssss % start marker % A Tutorial and Guide to our Image Post Processing Tools % ======================================================= % by Don Lancaster GG #88 POSTPROC.PSL /tabs [14] store 20 48.3 0.7 add % 1 sub (A |jTutorial |jand |jGuide |jto |jmy)cc 20 46.3 0.7 add % 1 sub (Image |jPost |jProcessing |jTools) cc black font2 textleft 43 0.3 add % this one only need |h below (|h|/aqua |/staytint1 |3Don Lancaster Synergetics, Box 809, Thatcher, AZ 85552 copyright c2008 pub 4/08 as |/surl |6GuruGram|1|/gurgrm01 |/tinton1 |6#88 |/surl http://www.tinaja.com|/tinaja |/surl don@tinaja.com|/maildon (928) 428-4073 |/aqua |/black |a|0B|b|1ack in the days of "slopping in the slush" photography, it was essential that you got your image exactly right before you snapped the shutter. But these days, we have incredible collections of |/to image post processing tools|/tx that let you repair and improve images to your heart's content. For superb results with today's tools, |/to at |/to least ninety percent of your time and effort should be spent in postproc|/tx . |h We pride ourselves in having the finest product photos on |/su eBay|1|/ebay , bar none. Much of this was simple attention to detail, using plain old |/to Paint|/tx and the shareware of |/su ImageView32|1|/imgviewer32 . To these, I have added an ongoing collection of my utilities and tutorials that can let you do absolutely stunning postproc image improvements. |h Some of these simply (|jand often obsessively|j) do my things my way; others go far beyond what is available in PhotoShop and similar commercial packages. All of them are pretty much platform independent and can give you absolute personal total control of exactly what you do how. |/to All with open, unlocked, documented, |/to and easily modifiable source code|/tx . What I thought I'd do in this |/su GuruGram|1|/gurgrm01 is summarize what these tools are and how you can use them. |h Key goals are |/to sharpness and resolution to one pixel accuracy|/tx ; shadowless or nearly shadow free images; true vertical lines by way of architect's perspective; effective airbrush blending; true blended and antialiased lettering as perfect as possible for a given bitmap resolution; dramatic vignetting when and where appropriate; true HSB airbrushing for smooth gradients; background knockouts; JPEG artifact reduction; symmetry improvements; gamma & color correction; "infinite" depth of field by combining digital photography with scanning; high quality pixel interpolation; white punchthru elimination, multiple exposure background bumping, and great heaping bunches more. |h Many of the actual utilities make heavy use of the incredibly superb |/su PostScript|1|/post01 general purpose computing language. Often helped along by my |/su Gonzo Utilities|1|/gonzotut.pdf . Generally, simple modifications are made to an ordinary text file which is then sent to |/su Acrobat Distiller|1|/adobe or |/su GhostScript|1|/ghostscript . Making use of |/su Distiller as a Host Based |/distlang.pdf |/su PostScript Interpreter|1|/distlang.pdf . |h ) cl startnewpage (|1The distilling process usually reads and writes |/su .BMP bitmap files|1|/expbmp.pdf in your intended manner. Most utilities are purposely and proudly not WYSIWYG. For advantages of convenience, power, control, device independence, and modifiability. Very often, a viewable result image is a second or two away from any action. |h One caution: |/to Acrobat Distiller versions above 8.1 default to preventing disk file |/to reads and writes|/tx . The workaround is to always use Distiller from your Windows command line and activate it with an |/to acrodist -F|/tx . Solutions for other platforms appear |/su here|1|/distbug . |h Here is a summary some of our postproc routines. Some are new and some are older, so we'll present them alphabetically\274 |h |c Airbrushing \320 |/su AIRBRUSH.PDF|1|/airbrush.pdf (tutorial) |/su AIRBRUT1.PSL|1|/airbrut1.psl (utility) |d Airbrushing takes a quadrilateral on a |/su bitmap image|1|/expbmp.pdf defined by its four corner points and then |/to creates a smooth two dimensional blended gradient|/tx of all intermediate points. This can be used to eliminate burns or speckle. Or to make an area more uniform. Or get rid of a telephone pole or wires. Or wherever traditional airbrushing was appropriate. A randomizing feature is included to add texture. Normal operation is in the HSB space, with a RGB blending option. |h The utility uses the following major variables\274 |h |/to /bmpinfilename \320|/tx input short .BMP filename |/to /bmpinfileprefix \320|/tx long prefix for input .BMP filename |/to /bmpoutfilename \320|/tx output short .BMP filename |/to /bmpoutfileprefix \320|/tx long prefix for output .BMP filename |h |/to /textureflag \320|/tx true/false for texture enrichment |/to /textdepth \320|/tx amount of texture enrichment when used |h |/to /usehsb \320|/tx default true = hsb blend false = rgb blend |/to /hueshift \320|/tx corrects red blend if +0.5 default = 0. |h |/to /airbrushboundaries \320|/tx array of |/to [|jllx lly ulx uly urx ury lrx lry|j]|/tx |h|1|/black That are interpreted by these routines\274 |h|6|/staytint1 |/to fixpaint \320|/tx inverts paint vertical values given |/to height|/tx input |/to airbrushquad \320|/tx does the blend, reading |/to airbrushboundaries|/tx |h|1|/black Here is a |/su full panel example|1|/airbex1 . Cylindrical effects can be gotten as |/su in this example|1|/airbex2 by doing a left side and then mirroring. Code extensions can take care of the rare cases where a blend may go "the wrong way" around the hue circle. And deal with any unwanted color fringing near gray values. Processing time normally takes a few seconds for smaller areas. |h We'll stuff our usual reminder in here that |/to PostScript strings demand a double |/to reverse slash anytime a single one is needed|/tx . Especially in filenames. |h ) cl startnewpage (|c Architect's Perspective \320 |/su KEYCOR01.PDF|1|/keycor01.pdf (tutorial) |/su FIXTLT01.PSL|1|/fixtlt01.psl (utility) |d Another name for Architect's perspective is |/to keystone correction|/tx , based on the |/to tilt|/tx adjustment on a view camera. The goal is to make all vertical lines in an image appear truly vertical. To one pixel accuracy. Especially the sides of buildings or telephone poles. Or, in this electronic product photography |/su image example|1|/airbex1 . |h Several approaches are possible for keystone correction. With these particular files, the left edge to be "verticalized" is projected from its |/to center|/tx position to its top edge position and |/to oldtopleft|/tx and |/to newtopleft|1|/tx are noted. The right edge to be "verticalized" is projected from its center position to its top edge position and positions of |/to oldtopright|/tx and |/to newtopright|1|/tx are also noted. |h This version of the utility uses the following major variables\274 |h |/to /rootfilename \320|/tx input short .BMP filename |/to /diskfileheader \320|/tx long prefix for input .BMP filename |h |/to /oldtopleft \320|/tx projected position of original left "vertical". |/to /oldtopleft \320|/tx projected position of desired left "vertical". |/to /oldtopright \320|/tx projected position of original right "vertical". |/to /oldtopright \320|/tx projected position of desired right "vertical". |h |/to /nowhite \320|/tx true = remove whites to prevent punchthru |h|1|/black That is activated by this routine\274 |h|6|/staytint1 |/to mainloop \320|/tx do keystone correction to new .BMP file |h|/black |1 An optional white punchthru corrector is included and activated by way of the |/to nowhite|/tx Boolean. |h Some older approaches to tilt correction were found in |/su SWINGTLT.PDF|1|/swingtlt.pdf (|jtutorial|j) and |/su SWINGT01.PSL|1|/swingt01.psl (|jutility|j). In these, both the |/to tilt angle|/tx and the |/to center neutral |/to position|/tx were entered instead of the projected verticals. While somewhat more intuitive, considerably more trial and error was sometimes involved. |h All of these keystone routines to date do have an algorithmic flaw: |/to curvature may |/to be introduced for large tilt correction values|/tx . This is caused by attempting to remap rows only instead of moving both row and vertical position. |h Curvature typically shows up at a gain of |/to 1.15|/tx and becomes significant at |/to 1.20|/tx . These values are often well above normal |/su eBay|1|/ebay product photography adjustments. A fix is in the works using our latest full .BMP remapping based on the |/su starwars|/nonlingr.pdf |/su transformation|1|/nonlingr.pdf and our new |/su BMP2PSA.PDF|1|/bmp2psa.pdf core utilities. |h This newer and more accurate method might end up significantly slower. ) cl startnewpage (|h |c Background |jKnockout \320 |/su KNOCKBACK.PSL|1|/knockback.psl (utility) |d Conventional automated knockout programs have a crucial problem: |/to They are |/to worst where they are needed most|/tx . Namely in deep shadow or otherwise ambiguous areas. |/su KNOCKBACK.PSL|1|/knockback.psl is a "semi-automated" utility that removes most background to white. Once removed, the remaining image can be transparently pasted onto a new background. Or a new background (|jwith or without vignetting|j) can be slid "underneath" any white areas. |h Besides adding interest and reducing harshness, a new color background having slightly random pixel mottling can dramatically reduce ultimate JPEG edge artifacts on any later conversion. |h To begin, a white |/to punchthru elimination|/tx (|jsee below|j) must first be used to eliminate any true whites inside the image itself. And |/to a continuous white outline |/to is traced around the active image portion to be retained|/tx . It is super important that image magnification or any color correction |/to not|/tx be done after internal true whites are eliminated. And equally important that there are |/to absolutely no holes|/tx in the white traced image outline. |h |/su KNOCKBACK.PSL|1|/knockback.psl then proceeds with the following algorithm: For each row, |/to white pixels are added from the left margin until a white pixel is encountered|/tx . |h Then white pixels are added from the right margin until a white pixel is found. The process is then repeated for each |/to column|/tx , starting at the top and working down and starting at the bottom and working up. |h Most of the background will usually end up knocked out to white. Although some occasional undercuts or unusual areas may need individual manual retouching. |h This version of the utility uses the following major variables\274 |h |/to /sourcefilename \320|/tx input short .BMP filename |/to /bmpinfilenameprefix \320|/tx long prefix for input .BMP filename |/to /targetfilename \320|/tx output short .BMP filename |/to /targetfilenameprefix \320|/tx long prefix for output .BMP filename |h|1|/black That are interpreted by these routines\274 |h|6|/staytint1 |/to /grabbitmap \320|/tx capture bitmap for analysis. |/to /knockback \320|/tx remove outside whites to border |/to /savebitmap \320|/tx save knocked out image. |h |c Background |jSlideunder \320 |/su NUBKG01.PSL|1|/nubkg01.psl (utility) |d There are many advantages to providing a background other than white to an image. The final appearance can be less harsh; edges can be sharpened or emphasized; and any JPG artifacts can be significantly reduced. |h ) cl startnewpage (|/su NUBKG01.PSL|1|/nubkg01.psl is my automated workhorse routine for many of my |/su eBay Images|1|/ebay . There is no tutorial yet as such. This utility basically adds to |/su DODGEBUR.PDF|1|/dodgebur.pdf and |/su DODBUR01.PSL|1|/dodbur01.psl in a purpose targeted manner. |h The image to be processed must first be knocked out to a white background and have any white punchthru eliminated. An expandable choice of several slightly mottled color background patterns are available. The mottling adds texture and interest. More importantly, the slight random variations dramatically reduce JPG edge artifacts at the price of a slightly larger file size. |h The utility works by seeking out white pixels and substituting the next available pixel in a chosen and predefined mottled background pattern. |h |c Bitmap |jTypewriter \320 |/su BMFAUTO1.PDF|1|/bmfauto1.pdf (tutorial) |/su AUTOBMF1.PSL|1|/autobmf1.psl (utility) |d The Bitmap Typewriter provides the highest possible resolution full pixel typography and does so with incredibly legibility down to astonishingly small point sizes. Such tasks as relettering an entire test equipment panel are now quite feasible. As per |/su this example|1|/wave1001.jpg that even includes rotated text. |h In normal use, the needed lettering or relettering is created to a scratch bitmap and then cut-and-paste copied to the image being reworked. |/to The characters are |/to absolutely pixel locked and fully antialiased|/tx on a pixel-by-pixel basis |/to without|/tx any damaging smoothing or low pass filtering in use. |h Although any combination of |/su PostScript|1|/post01 fonts can be used, best low pixel results are often obtained using |/to Myriad Pro|/tx or |/to Helvetica|/tx families. Any number of letter colors can be fully blended to as many as four backgrounds. Letters and background can be any reasonable color combination. |h Font sizes are defined by the pixel count width and pixel count height of an upper case letter "A". Wider and narrower letters are proportionally forced into the appropriate nearest available width. The portion of the chosen character that maps into any particular pixel is sampled 36 times. From those samples, an appropriate antialiased blend of letter to background color is created. Repeating for each of the RGB planes. |h The utility uses the following major variables\274 |h |/to /targetfilename \320|/tx output short .BMP filename |/to /targetfilenameprefix \320|/tx long prefix for output filename |/to /globalkern \320|/tx sets the global kerning, often 1. |/to /kern+char \320|/tx sets the positive kerning character, often "~". |/to /kern-char \320|/tx sets the negative kerning character, often "`". |/to /yinc \320|/tx sets the line to line vertical pixel spacing |h|1|/black That are interpreted by these routines\274 |h|6|/staytint1 |/to setfontfamily \320|/tx picks the current PS font family in use ) cl startnewpage ( |/to setbmsize \320|/tx sets upper case "A" pixel height and width |/to curcolor \320|/tx defines the current RGB color |/to setbackA \320|/tx maps the background color (|jalso B,C,D|j). |/to setgraystring \320|/tx images the current character string. |h|/black |1 At present, imaging |/to x|/tx and |/to y|/tx positions input to |/to setgraystring|/tx will start at that location. Use of |/to 0,0|/tx instead will continue on the present line. Characters are generated on the fly as they are needed and then saved for possible reuse. |h Near the end of any line, a character break will force a new combined linefeed and carriage return. With distance set by |/to yinc|1|/tx . The background can be split into as many as four color zones. Kerning is normally done by inserting appropriate "~" or "`" characters whenever a positive or negative one pixel kern is wanted. |h The results of the bitmap typewriter are usually stunningly impressive. Especially when lettering drops down below "pseudolegible" sizes. Results can be further improved by going to |/su subpixel|1|/legible1.pdf techniques, but these can be rather complex and are strictly limited to specific LCD displays. |c Core |jAOS |jUtilities \320 |/su BMP2PSA.PDF|1|/bmp2psa.pdf (tutorial) |/su AOSUTIL1.PSL|1|/aosutil1.psl (utility) |d Some bitmap manipulations can be done one pixel at a time. Others demand at least a row of data being available. But for the really general and really powerful stuff, |/to each and every pixel in the original .BMP file should be simultaneously |/to available for access.|/tx |h Total access becomes crucial when adjacent pixels in both directions are needed for fancy filtering or interpolation. Or when nonlinear transformations are to map data from one area of the original bitmap to somewhere else. |h I recently created a set of core utilities that "open up" a bitmap so that everything is accessible all at once. This is based on using a |/su PostScript|1|/post01 |/to array of strings|/tx . The code accepts a bitmap, converts it to three arrays of strings for processing, and then resaves to a new bitmap or to a PostScript image. |h Our |/su Airbrush Utilities|1|/airbrush.pdf were the first of an expected continuing series of apps that make extensive use of these AOS techniques. In general, these core AOS utilities get "built in" to fancier routines with more tightly targeted uses. |h The core AOS utilities use the following major variables\274 |h |/to /arrayfilepathprefix \320|/tx long prefix for input & output files |/to /inputbitmapfilename \320|/tx input short .BMP filename |/to /outputbitmapfilename \320|/tx output short .BMP filename |h |/to /redAOSfile \320|/tx red plane of original bitmap image |/to /greenAOSfile \320|/tx green plane of original bitmap image |/to /blueAOSfile \320|/tx blue plane of original bitmap image |h|1|/black That are interpreted by these routines\274 ) cl startnewpage (|y|6|/staytint1 |/to /mergestr \320|/tx merges two strings (|jfrom Gonzo|j) |/to /string2array \320|/tx converts string to array (|jfrom Gonzo|j) |/to /array2string \320|/tx converts array to string (|jfrom Gonzo|j) |/to /file1 \320|/tx string read as a file (|jexample|j) |/to /file2 \320|/tx string written as a file (|jexample|j) |h |/to /getredAOSrow \320|/tx extract one red row from redAOSfile |/to /getgreenAOSrow \320|/tx extract one green row from greenAOSfile |/to /getblueAOSrow \320|/tx extract one blue row from blueAOSfile |h |/to /convertAOStoPSimage \320|/tx convert string array to PS image |/to /convertAOS2BMPimage \320|/tx convert string array to output bitmap |/to /inputbitmap2AOS \320|/tx convert input bitmap to PS array of strings |h |c Dodging |jand |jBurning\320 |/su DODGEBUR.PDF|1|/dodgebur.pdf (tutorial) |/su DODBUR01.PSL|1|/dodbur01.psl (utility) |d In a traditional darkroom, you used a |/to dodging paddle|/tx to hold back on the negative's light in certain areas, making your print |/to lighter|/tx . Or a |/to burning card|/tx with a small hole in it to add to the negative's light. This time making your print |/to darker|/tx . And thus enhancing selected image areas. |h Digital dodging and burning uses a mask and a set of rules to selectively change certain image bits. |/to The rule is individually applied to one pixel at a time|/tx . Besides traditional dodging and burning, you can selectively alter intensity, saturation, gamma, contrast, hue, chroma, vignetting, image substitution, and even transparent overlays. Plus doing masking, gray conversions, silhouettes, waterfall backgrounds, color seps, knockouts, backgrounds, and gamma plots. |h Ferinstance, you might have a mask that is darker at lower left and lighter at upper right. And use this mask to improve any subject lighting that is excessively hot near the camera. The masks can be quite simple and of low resolution. They are automatically expanded to fit the exact image size and are triply (or more) filtered for the smoothest possible transitions between their areas. |h The |/su DODBUR01.PSL|1|/dodbur01.psl utilities use the following major variables\274 |h |/to /diskfileheader \320|/tx long prefix for input & output files |/to /diskfilesourcename \320|/tx input short .BMP filename |/to /diskfiletargetname \320|/tx output short .BMP filename |h |/to /arrayfilepathprefix \320|/tx long prefix for input & output files |/to /inputbitmapfilename \320|/tx intput short .BMP filename |/to /outputbitmapfilename \320|/tx output short .BMP filename |h |/to /dbdata \320|/tx the redefined mask pattern to be used |/to /dbmap \320|/tx the redefined rule set to apply to the mask |/to /gamma \320|/tx an array of gamma values |/to /redweight \320|/tx balance value for gray equivalence, usually 0.30 |/to /greenweight \320|/tx balance value for gray equivalence, usually 0.59 ) cl startnewpage ( |/to /blueweight \320|/tx balance value for gray equivalence, usually 0.11 |/to /makeredchanges \320|/tx apply to red pixel plane? true/false |/to /makegreenchanges \320|/tx apply to green pixel plane? true/false |/to /makebluechanges \320|/tx apply to blue pixel plane? true/false |h|1|/black That are interpreted by these routines\274 |h |/to dodge&burn \320|/tx apply dbmask and dbrule to input image file |/to dbmap \320|/tx show shading mask only |/to dbluminance \320|/tx alter image brightness only per mask |/to dbsaturation \320|/tx alter image saturation only per mask |/to dbgray \320|/tx change image to NTSC gray |/to dbmap \320|/tx do traditional localized dodge or burn |/to dbhue \320|/tx waterfall, rainbow, or alter image hue per mask |/to dbgamma \320|/tx alter image gamma only per mask |/to dbmask \320|/tx extract black mask |/to dbredsep \320|/tx extract red color plane |/to dbgreensep \320|/tx extract red color plane |/to dbbluesep \320|/tx extract red color plane |/to dbtransblend \320|/tx transparently blend two images |h |c Exploring |jthe |j.BMP |jBitmap |jData |jFormat \320 |/su EXPBMP.PDF|1|/expbmp.pdf (tutorial) |d A tutorial on the fundamentals of the .BMP data format. This is often the best choice for postproc work in that the file is easily opened up to make each and every pixel of all three colors readily available. Plus, there are no compression or generation losses. |h Only |/to after|/tx all postproc is done should your results be converted into more compact |/to .JPG|/tx files for distribution. |j A .BMP file consists of a header followed by a body of image data. It is extremely important that the header data |/to exactly match|/tx that needed by the image data. Most any match error will cause severe distortion or outright file failure. |h |/to .BMP Bitmaps build from the bottom up and left to right|/tx . The |/to blue-green-red|/tx data sequence is "backwards" from what you may expect. |h The needed .BMP |/to padding bytes|/tx can cause confusion. Because |/to each new row |/to must start on a 32 bit boundary|/tx , zero, one, two, or three padding bytes have to be added to the end of each data row. |h While the actual math is obtuse, the required number of padding bytes simplifies on down to\274 |6|/shiftin |/burple |/staytint1 |/burplebox2 |h Padding bytes needed = xpixels 4 idiv |h |1|/shiftout |/aqua |/black ) cl startnewpage (|h |c Extreme |jDisplay |jLegibility \320 |/su LEGIBLE1.PDF|1|/imagimag (tutorial) |d A tutorial on how to gain screen legibility that is |/to better|/tx than the printed page! |h Includes subpixel direct digital display addressing, true post anti-aliasing, authoring techniques for improved legibility, and several additional techniques. |h |c False |jColor |j& |jRainbow |jImprovements \320 |/su FALSECLR.PDF|1|/falseclr.pdf (tutorial) |d Tutorial and sourcecode shows how to improve false color and rainbow effects by equalizing saturation and modifying hues. Includes table lookups exportable to most any language. |h |c Gonzo |jUtilities \320 |/su GONZOTUT.PDF|1|/gonzotut.pdf (tutorial) |/su GONZO.PS|1|/gonzoutils (utility) |d These form my ongoing in-house custom |/su PostScript|1|/post01 combination illustration and pagemaking package. I use them for all of my presentation, engineering, and consulting work. They are enormously useful when developing new image postproc code. |h The full utilities can be prepended to most any routine by modifying\274 |6|/shiftin |/burple |/staytint1 |/burplebox2 |h |/to (|jC:Program Files\\\\\\\\gonzo\\\\\\\\gonzo.ps|j) run|/tx |h |1|/shiftout |/aqua |/black |h As noted before, Distiller versions newer than 8.1 default to preventing diskfile reads or writes and must be activated by a command line |/to acrodist -F|/tx . |h Some of the more common Gonzo procs can be predefined in our postproc utilities so the routines can stand alone. Some more used routines include\274 |h|6|/staytint1 |/to /mergestr \320|/tx merges two strings |/to /random \320|/tx generate random integer |/to /stopwatchon \320|/tx start timing stopwatch |/to /stopwatchoff \320|/tx stop timing stopwatch and report |h|/black |1 The latter two routines also have to tow along the |/to /resettimer|/tx , |/to /stoptimer|/tx , and |/to /reporttimer|/tx internal Gonzo resources. |h |c Imaginative |jImages \320 |/su IMAGIMAG.PDF|1|/imagimag (tutorial) |d One of our earliest tutorials on image postprocessing techniques. Covers many of the basic rules on propping, scanning, enhancement, and conversion of digital images. |h Expanded upon and more detail added by our later tutorial of |/su STEPPREP.PDF|1|/stepprep . ) cl startnewpage (|c Inverse |jGraphics |jTransforms \320 |/su INVEGRAF.PDF|1|/invegraf.pdf (tutorial) |d When modifying graphics images, an inverse or "comes from" transform may be needed instead of the usual "goes to" Tutorial and examples show some of the math techniques involved. |h |c JPG |jArtifact |jReduction |/su KNOCKOUT.BMP|1|/knockout (sampler) |d The |/su .BMP images|1|/expbmp.pdf formats normally used in image postproc are often converted into more compact .JPG images for final distribution. Since .JPG images are lossy, artifacts can appear. In particular, a "ghosting" along white or solid color edges is both common and annoying. |h A useful method to eliminate many .JPG ghosting artifacts is to have a "mottled" or a "randomized" background. The .JPG coding process will get confused and not create continuous ghosting artifacts. With only a slight penalty of a modest increase in file size. |h One effective route to mottled backgrounds is to use our |/su KNOCKOUT.BMP|1|/knockout sampler. A second is to very early on isolate and expand an interesting image area into a suitable background pattern. A third is to use the ready-to-go automatic backgrounds of |/su NUBKG01.PSL|1|/nubkg01.psl . |h |c Nonlinear |jGraphic |jTransforms \320 |/su NONLINGR.PDF|1|/nonlingr.pdf (tutorial) |d This was an older tutorial I published in |/su Circuit Cellar|1|/ccelllink . It reviewed the fundamentals of both linear and nonlinear graphics transforms. Included were isometric, starwars, perspective, rootbeer, spherical, tunacan, glyphpath, and scribble transforms. |h Bunches of earlier typography transforms appeared way back in |/su PSSECRETS.PDF|1|/pssecrets . |h |c Pixel |jInterpolation |jAlgorithms \320 |/su PIXINTPL.PDF|1|/pixintpl.pdf (tutorial) |d A tutorial review of popular pixel interpolation schemes including Bilinear, Nearest Neighbor, Bilinear with lookup, Modified 3x3, and Bicubic. Includes detailed bicubic math derivation. |h Additional details on Bezier curves, cubic splines and bicubic techniques appear in our |/su Cubic Spline|1|/cubic01 library pages. |h |c Punchthru |jElimination \320|/tx |d If a white background is going to get substituted and if there are still white pixels |/to inside|/tx the image subject, then a |/to punchthru|/tx can result. Where the background breaks through the middle of the image. With subtle to terrible results. Such as the map appearing in the middle of the weatherman on tv. ) cl startnewpage (|1Punchthru elimination is simple enough that you usually will build it into a routine that is busy doing something else. Ferinstance, it is included as an internal part of |/su FIXTLT01.PSL|1|/fixtlt01.psl . And it was a second pass part of older |/su SWINGT01.PSL|1|/swingt01.psl . |h The key is to |/to never write a 255|/tx . Always write 254 instead\274 |6|/shiftin |/burple |/staytint1 |/burplebox2 |h punchflag {dup 255 ge {pop 254}if|j} if |h |1|/shiftout |/aqua |/black |h Actually, just writing 254 to |/to one|/tx of the three RGB bit planes should do the trick. Red, perhaps. Again, best done as a minor part of some other routine. |h Punchthru elimination timing can be subtle and needs some thought. Obviously, it must be done |/to before|/tx any background knockout to white. And |/to any scaling or |/to gamma or contrast or brightness corrections are a big no-no|/tx between the time elimination is done and whenever any white pixels are used as a replacement mask. And |/to every|/tx pixel in the active portion of the saved image must be tested. |h Stand alone punchthru elimination code can be extracted from |/su SWINGT01.PSL|1|/swingt01.psl . |h |c Some |jeBay |jPhoto |jSecrets \320 |/su EBAYFOTO.PDF|1|/ebayfoto (tutorial) |d A tutorial on |/su eBay|1|/ebay specific photographic postprocessing. Details on the "hex" and "square" layout formats. Perspective correction. One pixel accuracy. Background fills. Relettering. Combined camera/scanner work. Vignetting. Image theft considerations. |h Additional |/su eBay|1|/ebay related files appear in our |/su Auction Help|1|/auct01 library pages. |h |c Step |jby |jStep |jImage |jPrep \320 |/su STEPPREP.PDF|1|/stepprep (tutorial) |d An intro tutorial on some insider postprocessing secrets. Why both cameras and scanners are useful. Fundamentals of background knockout. Pixel locking. Adding detail. Improving lettering. Final formatting. Heavily illustrated. |h Uses a scanned image of a cable end and gives sequential examples of each postproc development step. A somewhat similar but earlier tutorial appeared as |/su IMAGIMAG.PDF|1|/imagimag . |h |c Using |jDistiller |jto |jrun |jPostScript \320 |/su DISTLANG.PDF|1|/stepprep (tutorial) |d Acrobat Distiller makes a superb host based PostScript computer. And is the crucial key to using the general purpose |/su PostScript|1|/post01 computing language for an astonishing array of useful tasks. |h Many of our postproc utilities are based on taking a standard ASCII textfile, altering a few data values and then routing it to Distiller. Distiller in turn reads input bitmaps, suitably modifies them, and then rewrites them as new files. |h ) cl startnewpage (This greatly expanded tutorial and update of an older file reveals the key concepts and insider tricks involved. More can be found in our |/su PostScript|1|/post01 library pages. |h |c Vignetting |/su DODGEBUR.PDF|1|/dodgebur.pdf (tutorial) |/su DODBUR01.PSL|1|/dodbur01.psl (utility) |d The fading of an image to white or black around its edges is sometimes known as |/to vignetting|/tx . This was originally a |/to defect|/tx in early photographs to cover erratic chemical solution coverage on the glass plate or off axis lens defects. |h Today, vignetting can be used for special effects, but |/to should be reserved only for |/to those times when it is appropriate|/tx . A vignetting example |/su appears here|1|/vignexamp . |h Vignetting is a variation on |/su DODBUR01.PSL|1|/dodbur01.psl and also is a part of |/su NUBKG01.PSL|1|/nubkg01.psl . A luminance mask is created with darkened and rounded edges, expanded and smoothed to fit, and then applied to the selected image. Punchthru elimination is usually required as well. |h Save this "gee whiz" effect for special uses. It can get old really fast. |h |c For |jMore |jHelp |d These routines evolved over many years. And may sometimes be spotty or uneven in places. The present intent is to use our fully two dimensional |/su BMP2PSA.PDF|1|/bmp2psa.pdf core utilities to create new and improved versions of postproc routines. Our new |/su AIRBRUSH.PDF|1|/airbrush.pdf was the first example of this ongoing code series. We intend to expand this |/to GuruGram|1|/gurgrm01 as new or improved routines become available. |h News about the latest updates and addons should first appear in |/su WHTNU08.ASP|1|/whtnu08 or later blog entries. |h Similar tutorials and additional support materials are found on our |/su PostScript|1|/post01 and our |/su GurGram|1|/gurgrm01 library pages. As always, |/su Custom Consulting|1|/info01 is available on a cash and carry or contract basis. As are seminars and workshops. For details, you can email |/su don@tinaja.com|1|/maildon . Or call |/to (928) 428-4073|/tx . ) cl startnewpage % EOF