

                 C A N O N S T U D I O  V 1.2
                 ============================



                          COPYRIGHT
                          ---------

COPYRIGHT      1992   WOLF  FAUST.   ALL  RIGHTS  RESERVED.   ALL
DISTRIBUTION-  AND  MARKETING RIGHTS TO THE SOFTWARE ARE VESTED IN
WOLF FAUST.

COPYRIGHT:    THIS  PRODUCT  ("CANONSTUDIO")  IS  COPYRIGHTED  AND
OTHERWISE  SUBJECT  TO  PROPRIETY  RIGHTS.   YOU  MAY NOT COPY, OR
TRANSFER  THE  PRODUCT  OR  ANY  COPY  OR  PORTION THEREOF WITHOUT
WRITTEN PERMISSION FROM THE AUTHOR WOLF FAUST.

DISCLAIMER:   THE  PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY  KIND, EITHER EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE.  THE
ENTIRE  RISK  AS TO USE, RESULTS AND PERFORMANCE OF THE PRODUCT IS
ASSUMED BY YOU.

LIMITATION OF LIABILITY:
IN  NO  EVENT  SHALL  CANON  AND/OR FAUST OR ITS SUPPLIERS BE HELD
LIABLE  FOR  ANY  LOSS  OR DAMAGES ARISING OUT OF ANY ACTION, FROM
WHATEVER  SOURCE,  CONCERNING  THE  USE  OR  INABILITY  TO USE THE
PRODUCT.



                          REGISTERING
                          -----------

Please  register  CanonStudio or this product will most likely not
be  supported  in  the  future (programs do cost more than time to
develop).  Also, your sharefee is my motivation for enhancements.

The price for registering is:


                       INTERNATIONAL

        US$25   includes shiping
      +   $ 5   if payed by cheque. No COD!



                         GERMANY

        DM 35   includes shiping. No COD (Nachnahme)!



                         ENGLAND
          15   includes shiping



Send the money to following address:

Wolf Faust
Am Dorfgarten 10
W-6000 Frankfurt 50
Germany

Tel: ++49-69-5486556 (GMT)
Fido:       2:249/3.5 (Wild Cat: ++49-6173-2544 HST,V.32bis)
email:   wfaust@aurea.hotb.sub.org


Or in England you may register and get updates at/from:

JAM
Jeff Walker
75 Greatfields Drive
Uxbridge, UB8 3QN

Tel: 08952-74449 (GMT)

What do you get in return:

- CanonStudio registered version
- .030 version (approx. 10-20% faster)
- update service (I take that very serious!)




                          TRADEMARKS
                          ----------

Amiga is a registered trademark of Commodore-Amiga, Inc.
Kickstart is a registered trademark of Commodore-Amiga, Inc.
Workbench is a registered trademark of Commodore-Amiga, Inc.
Deluxe Paint is a registered trademark of Electronics Art.

All  other  trademarked  product and company names used herein are
used   for  identification  purposes  only.   No  infringement  of
trademarks   is  intended.   Trademarks  remain  property  of  the
trademark holder.



                        INTRODUCTION
                        ------------

CanonStudio is a new program which is intended for all Amiga Canon
printer  drivers.   It  does  print IFF graphics with up to 24 bit
color   accuracy   in   any  size  (Want  a  100*100m  poster?)  .
CanonStudio  is  not limited to the max.  4096 colors of the Amiga
printer  device, though it does work with nearly all Amiga printer
drivers.   The  pictures are printed FROM DISK ie.  you don't need
much memory for printing a 10MByte 24 Bit graphic in high quality.

CanonStudio  is  specially  written for the Amiga operation system
and  is not just a simple portation from an IBM or Apple computer.
Because  of  this, CanonStudio makes heavy use of multitasking and
Kickstart  2.04.   CanonStudio includes a spooler which allows you
to  specify  multiple  print  jobs  while  the  program is already
printing   in   background.   The  program  does  provide  a  nice
"click-and-drag" user interface and an ARexx interface.

From  my  experience,  most Canon printer owners do print pictures
using  ADPro's  PrefPrinter  saver or TruePrint.  CanonStudio does
offer  users  an easy and inexpensive way for printing pictures in
high  quality.   Using  the  ARexx-Interface,  CanonStudio  can be
controlled   by   other   programs   like  ADPro  or  Black  Belts
Imagemaster.

Now, here are some of the CanonStudio features:

- prints IFF ILBM pictures from disk

- supports most of the known IFF ILBM formats, including HAM8,
  HAM, EHB and color palettes up to 256 colors.

- does not require $&%$ MBytes memory!

- Allows you to print poster size images spread over multiple
  pages.

- number of copies can be defined

- Using  CanonStudio you  can  print 24 bit-planes of color accuracy
  on  a  color  printer  (for  instance CanonBJC800).  If you have a
  black and white only printer, then you can print with 8 bit-planes
  of grey scale accuracy.


- multiple jobs can be defined and printed in background
  (estimated print time and more will be displayed)

- ink compensation does correct ink impurities

- color adjustment (gamma, contrast, brightnes, weights,...)

- Free defineable ordered dither routines. Following ordered
  dither matrices are already included:
  Haltone-A, Halftone-B, Ordered-A, Ordered-B, Spiral, Horizontal,
  Vertical, Bck-Diagonal, Fwd-Diagonal

- Three error diffusion dither routines:
  Floyd Steinberg, Jarvis, Stucki

- Two serpentine blue noise dither routines are included:
  30% random weight, 50% random weight

- ARexx Interface

- font independent user interface (KS 2.04 style)



                        ABOUT THIS MANUAL
                        -----------------

Sorry for this limited manual.  I'm sure most things can easily be
understood  by  simply using the "try and error" method.  I simply
don't have the time yet to describe all those nice features hidden
in  the  program in detail.  This will hopefully be addressed in a
future  release.  Nearly every function is covered by this manual,
though, most things should be better explained.


                           HISTORY
                           -------

Following driver revisions have been made:

05.09.92     Version 1.0  First Version
08.09.92     Version 1.1  "Vertical Aspect" set in preferences
                          caused wrong sized printing
                          (a left bar) - fixed
09.09.92     Version 1.2  Remaining time not shown if
                          print = page dimension - fixed
                          a bug made it into V1.1 Blue-Noise color
                          dump routine causing "cyan-spots" - fixed



                          INSTALLATION
                          ------------

What does CanonStudio requires:

- an Amiga with at least Kickstart/Workbench 2.04
- ~300KB memory (so it even runs on a plain Amiga 500)
- a Canon printer driver (at least CanonBJ130 V11.1, CanonBJ10 V4,
  CanonBJC V1, CanonLBP V3, CanonBJ300 V4.1)

For  installing  CanonStudio  simply drag the CanonStudio icon and
Dither-Settings  drawer  into  the  wanted  drawer.  That's all...
simple, isn't it?

WARNING: IF STARTED FROM WORKBENCH, MAKE SURE STACK IS SET TO AT LEAST
10000   BYTES   OR  CANONSTUDIO  WILL  CRASH!!!

In case you have the original icon as distributed, stack is set to
10000   allready.   Stack  can  be  set  using  the  "Information"
workbench   menu.    When   started  from  Shell/CLI,  CanonStudio
automaticly allocates it's stack.  Because of this, you don't need
to set stack from Shell/CLI.



                      LAUNCHING CANONSTUDIO
                      ---------------------

CanonStudio  may be run from either Workbench or a Shell.  When it
starts,   it   looks   for   a   file   in  its  directory  called
"CanonStudio.prefs"   that  contains  your  last  used  and  saved
settings for printing.  In case the setting file can not be found,
CanonStudio  uses  it's  default  internal settings.  You may also
have your own settings file.

CanonStudio can be launched from Workbench by double clicking on
its icon. The CanonStudio icon has one tool type to specify its
setting file.

The tool type is

            SETTINGS=<settingsfile>

where <settingsfile> is the name of a settings file for CanonStudio
preferences. The default settings file is "CanonStudio.prefs" in
the program directory containing the CanonStudio executable.
Also, there are several tool type options which allow you to
override the settings of the settings file. These options are
named the same way as the Shell options are descibed below in
detail.

From a  Shell, CanonStudio is invoked by typing "CanonStudio".
CanonStudio has the following command template for it's arguments.


CanonStudio PUBSCREEN/K,TOPAZ/S,REXX/S,NOFILEREQ/S,SCALE/S,
            NOSCALE/S,SETTINGS/K,PRI=PRIORITY/K/N,UNIT/K/N,FILES/M

where SETTINGS is the name of a settings file for CanonStudio
preferences.

Beside the SETTINGS option, both, tool type and shell argument can
be used to override special preference settings or cause a
different behaviour of CanonStudio:

PUBSCREEN <Name>
allows opening CanonStudio on a public screen.

TOPAZ
disable  independent font code.  CanonStudio will only use Topaz 8
for rendering it gadgets.

REXX
Will  open  ARexx  port after FILES/M got processed.  WARNING:  if
REXX is specified, you can only quit CanonStudio by using the QUIT
or CONITNUE command (see the ARexx-Interface chapter).

NOFILEREQ:
If  files  are  specified during startup, these will be processed.
No  filerequester  appears  after this and -- unless REXX has been
specified -- CanonStudio is terminated.

FILES <name1> <name2>... :
You may specify files for processing and printing.

SCALE|NOSCALE  (default SCALE)
In  case  SCALE  is  used,  CanonStudio  checks  if  the  IFF CMAP
(colormap)  was shifted or scaled.  Some application programs (for
instance  DPaint  4.1)  do write their color values shifted (0xF0)
instead  of  scaled (0xFF) causing to dark colors.  As default you
should  start  CanonStudio  with  the  SCALE  option  and save the
setting.   Newer  programs do write their color values scaled (for
instance  ADPro).   Usually do not care about this setting, except
you get light grey instead of a white area.

PRI=PRIORITY <num>  (Default -1)
Defines  the  process  priority  of  the  main  print process.  As
default  a  value  of  -1  is  set.   This  results  in  a  better
multitasking  behaviour as you may go further while CanonStudio is
printing  in  background.   Most  Amiga  processes  have  a higher
priotity of 0. The priority must be in range from -50 to 50.

NOTE:  In case there is an other task with higher priority running
in  background,  CanonStudio  may  seem to be disabled or crashed,
though  this  is  not the case simply because CanonStudio does not
get  any computing time because of it's lower priority compared to
the  other  task.   In this case quit or halt the other task while
CanonStudio is running, or increase the CanonStudio priority using
the PRIORITY option.

UNIT <num>     (Default 0)
Future  Workbench  printer preferences may allow you top specify a
printer  port  to  print  at.  Also, most of the current multiport
cards  allow  you  to  specify a port for printing at using a unit
number  (ie.  0 = internal port, 1 = external port A, 2 = external
port B,...).
Using the UNIT tool type or CLI keyword, you can define a unit
(ie. port) to print at. As default, unit 0 is used.
Once specified you can save the unit in the CanonStudio settings
file.


NOTE:   in  case  the settings file could not be read, CanonStudio
automaticly   sets   the   dither   method   to  custom  with  the
Ordered-A-256  dither  method  installed.   So  the first time you
start, Ordered is installed as "Custom Dither".


                           GETTING STARTED
                           ---------------

After starting CanonStudio a filerequester appears and ask you for
selecting IFF files for printing.  You can avoid the filerequester
by specifying files as arguments on shell startup, and/or by using
the NOFILEREQ option.

Also,   in   case   you  start  CanonStudio  from  Workbench,  the
filerequester  can  be avoided by multiselecting the picture icons
(see your system manual for more information).

In  either  case,  Shell  or  Workbench,  a filerequester does not
appear  in  case  you  already  have  specified a picture file on
startup.   In case no file is given, the filerequester appears and
you   can   multiselect   (again,   see  your  system  manual  for
multiselection) files for printing.

In  case  you  are  not  sure about printing a special file, don't
hesitate.   Unless  you  have  specified  the  NOFILEREQ option on
startup,  the filerequester will appear again after processing the
other given files.


                        THE MAIN PROCESS WINDOW
                        -----------------------

After  successfully  selecting  the  file(s), the two main process
windows  open.  One window is sized as far as your monitor allows.
This window gives you an overview of the size of the printing page
and  the  picture size and position for printing.  You can use the
mouse to position and size the picture on page.

While  you  use the mouse for positioning the picture on the page,
the  gadgets  in the second window are updated accordingly.  These
gadgets  show  the extact numeric values of the selections made by
mouse in the other window.

Also,  this  smaller  window  contains all the gadgets you need to
control  color, dither method and more.  Most of the gadgets don't
need  a  huge  explanation,  so  let's have an overview over these
gadgets:




Paper Dimension:
These  are  two  gadgets.   One  is  showing  you the width of the
maximum  printable  area  of your printer as yelled by the printer
driver.   This  gadget is read-only.  The other gadget defines the
height  of  the  maximum  printable  area  of  your printer.  This
setting is often defined as physical print page.  For instance, in
case  you  have a DIN A4 paper with a size of 21.0*29.7cm and your
printer always leaves a top and bottom border of 1 cm, you should
enter 27.7cm here.




Page Dimension:
Now  that  you have defined the maximum print area of your printer
for  a  given  paper  size,  you may define a wanted subpage.  For
instance, you may want to decrease the printable size if you have
a  DIN  A4  sized paper with sign at the top which should never be
overprinted  (or  a formular paper).  Let's say the sign is at the
top  border  and  2  cm height.  Now you should decrease the print
height  from  Paper  Dimension  by  two (ie.  25.7cm) and define a
border of 2 cm at the top (Page Dimension Y = 2cm).




Print Dimension:
And  finaly  we have the actual print size of the picture.  The is
nearly  no  limit  to  the  size specified here.  Just be sure the
upper left corner of the picture will be printed on the first page
(if  not,  you'll  get  an  error requester anyway...).  The Print
Dimensions X will be applied to all of the left-most pages in a
poster print.  All of the top most pages of a poster print will be
affected by the Print Dimensions Y setting.



Density:
This  cycle  gadget in the upper right of the window shows you the
densities  supported  by  the  printer  driver.   Select  a wanted
density by simply clicking with the mouse on the gadget.



Col / b/w
Below the Density gadget, you find the color and b/w cycle gadget.
This gadget allows you to select the output of a color picture:
greyscale or color. In case you select color and your printer
driver does not support color, greyscale is used automaticly.




Single/Fanfold
This   gadget   does   the   same  as  the  Workbench  preferences
Single/Fanfold  gadget.  In case Single is selected, a Formfeed is
send  after  each  page.   Fanfold  should  be used for endless or
rolled paper.
If  you have a single sheet ONLY printer like a laser printer, you
can  use  FanFold to print multiple pictures on one page.  Just be
sure  to set the page and paper dimension accordingly.  If you are
printing  a  multicolumn  poster  on  continuous paper (fanfold or
roll)  then  you  would  set  "Fanfold" and define some top margin
(Print  Dimensions  Y)  so  that the columns of your print will be
separated.   Also,  when printing posters on continuous paper, you
should  set  the Page Definitions Top margin to 0 so that there is
no gap between individual pages of a column.




   Custom/Floyd/Stucki/Jarvis/Blue Noise 30%/Blue Noise 50%

This cycle gadget allows you to select a wanted dither method.
The dither method themselves are discussed later in detail.
However, the print time increases with the dither method listed
below. For instance Blue Noise usually requires twice the print
time of the any Custom dither.

o  Custom  allows  you  to define any wanted ordered dither matrix
using  the  "Define  Dither"  gadget  below.   Many preset ordered
dither matrixes are provided and explained later in detail

o Floyd Steinberg is a very popular error diffusion dither method.
This  dither  method  does  provide a good compromiss of speed and
quality.

o  Stucki  is also an error diffusion dither method.  Different to
Floyd Steinberg, this dither does require more computing time as a
result of taking more pixels into the account.

o  Jarvis  is  also  an error diffusion algorithem with nearly the
same  output  as the Stucki dither.  The added computation time of
the Jarvis and Stucki dithers results from incorporating a greater
number of pixels into each dithering computation.

o Blue Noise 30%
This  is  an  error  diffusion  algorithem with perturbation and a
serpentine raster using the Floyd Steinberg filter with 30% random
weights.

o Blue Noise 50%
This  is  an  error  diffusion  algorithem with perturbation and a
serpentine raster using the Floyd Steinberg filter with 50% random
weights.

If  you  want  to  read  more  about  dither  routines and digital
halftoning, here is a very good book to go for:

Robert Ulichney
"Digital Halftoning"
MIT Press
ISBN 0-262-21009-6

The  book  is  easy  to  understand  and  does  come with lot's of
samples.   Most of the dither routines described below are handled
in  detail  in  this  book.   Surely one of the best books when it
comes to digital halftoning.




Color Adjust...
A window will appear when you click on this gadget. The window
contains many sliders giving you a possibility of to control the
color, brightness and more of your picture. While most functions
should be known, some note should be made:

-  the  gamma  sliders  allows  you to bright up a picture without
loosing  to  much  colors.   Specially owners of printers with dot
gain  problems  (most  "cheap"  printers  <$3000  do have dot gain
problems!)  should  use  this  slider  to increase the brightness.
Usually, you should select a value from 20-30 for best printing on
the CanonBJC800, BJ10, BJ300. 


- the weights sliders are importend for printing color pictures on
greyscale printers.  The color components of the color picture are
weighted  accord  to  the  slider settings.  What are weights good
for?  A red and green pixel, both with the same color value of 50,
do  not have the same luminance when they are displayed on a color
monitor.   Most likely the green will look brighter because of the
way  monitor  tubes are build.  Because of this, when converting a
color  picture  previously  displayed  on a monitor to a greyscale
picture,   you   have  to  consider  the  different  weights  (ie.
luminance)  of  the tube colors.  As default, CanonStudio uses the
weights as defined by the NTSC and PAL standard.  In case you have
scanned  a picture with a RGB scanner, the colors are not weighted
to  these  standards and are most likely weighted equaly.  In this
all  sliders  should  be  set to 3333 (ie.  33.33%) resulting in a
total weight of 100%.  The total weighting may exceed 100 percent.

-  CanonStudio  also offers the user complete control over its ink
compensation  function.   Printer's  inks  are not completely pure
materials.  For example, there is some amount of yellow mixed into
the  magenta  ink.   And,  there  is  some amount of magenta which
unavoidably is found in the cyan ink.  The ink compensation values
will  correct for these impurities.  With Magenta Compensation you
define  the  amount  of  magenta in the cyan ink in percent.  With
Yellow Compensation you define the amount of yellow in the magenta
ink  in  percent.   In  general, set the ink compensation value of
magenta  31%  and  yellow to 40% for best results with Inkum Inks.
PS:   on  my  experience  15%  gives better violet shades with the
original  Canon  BJC800  inks, but again...  it's best you ask the
manufacturor  of  the  ink  for  the right values.

NOTE:  The ink compensation function can be completely disabled by
defining  0%.   You  will notice that without the ink compensation
function,  a  blue  sky  will  print  as  purple.   With  the  ink
compensation function set at 31%, blue skies are blue again.



Set Aspect
When  you click on this gadget, CanonStudio automatically sets the
print  height  of  your  picture  to  a value so that your printed
picture does have the right aspect ratio.  This requires a correct
aspect  ratio  or  DPI chunk saved in your picture.  After setting
the  correct  aspect  ratio,  a  circle is printed as circle and a
square  would  be  printed  as  square no matter what the physical
aspect of the printer's dots are.



cm/inch
Every  value  shown  in  the windows can defined as centimeters or
inches.   This  gadget  shows  the  current selection and when you
click on it, all values are changed to the other measurement.


Copies
Allows you to define the number of copies you wish to print of the
picture.


Startin page
In case you print a poster, you may define a page to start
printing with. This is specialy usefull for printing posters. In
case you had some trouble with the printer in the middle of the
printing (out of paper?), you may restart the printing with the
page aborted.


                       PRINTING THE PICTURES
                       ---------------------

After  all settings have been done in the main process window, you
can  click  on  the  "Print"  button.   A small status window will
appear  telling  you  the  number  of pages, copies and after some
seconds the estimated printing time.

CanonStudio  includes  a  printer  spooler  of  it's  own  (called
MultiTasking  hihi).   Because  of  this,  you can go further with
selecting  pictures  for  printing  while  the  printer  is  still
printing.  The main window will appear with the next picture file
in case you selected multiple pictures on startup. After defining
the print size of all given pictures, the filerequester appears
again.

There  is  nearly  no  limit  in  predefining multiple print jobs!
Also,  you  can  define  the  priority  of the printing process on
startup  of  CanonStudio  and save this setting by clicking on the
"Save  Setting" gadget.  If you set this priority to a less than 0
(default  -1),  printing  is done in background without disturbing
you  while  defining the print dimension of the next picture or do
whatever you like to do with your Amiga (except power off ;-).


                         QUIT CANONSTUDIO
                         ----------------

You  can  terminate  CanonStudio by clicking on the filerequesters
close gadget or the Quit gadget.



                         THE STATUS WINDOW
                         -----------------

The status window appears on startup of CanonStudio and remains
open until you quit CanonStudio. While printing the window is
sized to its maximum size and shrinked to a small title bar while
not printing. The status window displays the current print job in
progress and estimated printing time.
Two gadgets are in this window and enabled in case a picture is
printed:

"Aborts" the printing of all pictures.
"Skip"  skips the current picture and printing will start with the
next picture.  Also, a requester appears to make sure your printer
is ready for the next picture in case of an previous problem.



                          PRINTER DRIVERS
                          ---------------

CanonStudio  was designed to work with most Amiga printer drivers.
Though,  as  result  of the major efforts from Canon in supporting
the  Amiga,  currently  only Canon users get the program for free.
Because  of  this,  CanonStudio  was  limited  to  work with Canon
drivers. In case the printer driver support it's own kind of color
adjustment or dither routines: turn them off! Usually this can be
easily done by printing using density 1 or 2. See your printer
driver manual for more details.


                          DITHER ROUTINES
                          ---------------

Many  dithering  methods are supplied with the CanonStudio.  These
are  described  below.   In  each  case  a larger dither mask size
produces  a  print which can represent a wider range of colors but
will  produce  less  spatial  information  per unit area of paper.
Conversely,  a smaller dither mask size can reproduce fewer colors
(or  shades)  but more closely approximates the true resolution of
your printer.

Another  way  of  expressing  this  is  the following:  There is a
tradeoff  between printing ``lots'' of colors and printing in high
resolution.    Given  a  specific  printer  with  a  specific  DPI
capability,  asking  for  ``lots''  of colors means using a larger
dither  mask  size.   A  larger dither mask size cuts down on your
effective  resolution.  For instance, using a dither mask of 16*16
on  your 360dpi printer will result in 360/16 = 22.5 dpi with full
color information.

Note  that  this can work to your advantage when blowing a picture
up  in  size.  Blowing up a picture means that there are more dots
to  work  with  which  offsets  the loss in resolution caused by a
larger  dither mask size.  This added to the benefits to be had by
being  able  to  reproduce more colors (or shades) means that your
enlarged posters will look quite good.

Also note that many printers including most laser printers and dot
matrix  printers  have  considerable dot gain.  For example, a 360
DPI  laser printer does not actually print dots which are 1/360 of
an  inch  in  size.   Rather,  its dots will be much larger.  This
causes  some  dithers,  such  as  the  Floyd-Steinberg and Ordered
dithers,  to  produce  intensely  over-saturated  or muddy prints.
Other  dithers  such  as  the  two  halftone dithers overcome this
problem with low-end printers.

Also,  if  you want to read more about dither routines and digital
halftoning, here is a very good book to go for:

Robert Ulichney
"Digital Halftoning"
MIT Press
ISBN 0-262-21009-6

The  book  is  easy  to  understand  and  does  come with lot's of
samples.   Most of the dither routines described below are handled
in  detail  in  this  book.   Surely one of the best books when it
comes to digital halftoning.

Now let's take a look at the supplied dither routines. 



                           Custom
                           ------

If the Custom dither method is selected, you can define or load
any ordered dither matrix by click on the "Define Dither" method
below the gadget. Several popular ordered dither method are
provided with CanonStudio and saved in a file. These file can be
loaded and enabled with the "Load" gadget.

The  amount of printable colors is usually directly related to the
size  of the dither matrix.  The ordered dither routines described
below  usually  exists  in several sizes.  You can distinguish the
custom ordered dither routines by their filenames.  For instance a
filename  of  "Halftone-A-4"  means:  Halftone A dither routine, 4
shades.  While "Halftone-A-256" means:  Halftone A dither routine,
256 shades.


              Halftone-A - <number of colors>
              Halftone-B - <number of colors>


The  halftone  dithers  (Halftone-A  and Halftone-B) differ in how
they place a halftone matrix.

This  is the classical clustered halftone method used by most book
publishers.   To improve the dither output, the halftone matrix is
rotated  by  45 degree.  Halftone-A causes the halftone matrix for
each  of  the  primary colors to be centered about the same point.
This  means  that  the  primary  colors  will  overlap completely,
leaving  a  lot  of  white  paper  showing  through.   This may be
appropriate for some better dye sublimation type printers or other
color printers with good registration where the inks mix well.

Halftone-B,  on  the  other  hand, staggers the halftone matrix of
each  primary  color so that they do not overlap.  This is similar
in  concept  to traditional color offset printing.  Halftone-B may
produce better results on printers whose inks do not mix well, and
on printers with less than perfect registration.

The  halftone dithers can produce some extremelly good results and
compensate  for  the  dot  gain problems outlined above.  Try both
halftone  dithers  to  see which one is better for your particular
intention.

Also, in case you xerox your printing, using Halftone results in a
much better copy.

To  use  Halftone-B  is  somehow  different  to  the  other dither
matrices.   You  have  a  special  dither  matrix  for each color.
Because of this, each dither filename includes the abbreviation of
the  color  (C  =  cyan,  Y  =  yellow,  M = magenta, K = black or
greyscale).   In case you use Halftone-B you also have to increase
the  brightness  of  the  black  color  component by 50%.  Use the
bright+ gadget in the CanonPref program for increasing brightness.

Halftone-B is a nice example for the relationship between color
adjustment and dither routines. You have to consider both setting
up your driver.




                 PrtDevice-Halftone-16
                 PrtDevice-Ordered-16



This dither matrix is the one used by the printer devices
"Halftone" or "Ordered" dither.



                 Ordered-A - <number of colors>



The  ordered  dither produces a regular repeating pattern which is
often  used for printing computer graphics.  The ordered dither is
particularly  susceptible  to  over-saturation  due to dot gain in
high resolutions. Though, you surely get nice outputs in 180DPI.


                 Ordered-B - <number of colors>

This  dither  is  a mixture of a dispersed dither like Order and a
clustered  dither like Halftone.  The dither is specialy addressed
to  the  high  resolution  printers  with  dot gain problems.  For
instance,   if   you  print  a  picture  with  360*360  dpi  using
Ordered-Rect-B-64, you get a picture that seems to be printed with
180*180  dpi.   Now  while  graphics are printed emulating 180*180
dpi,  all  black  parts  of the picture are printed using 360*360.
Don't  be  confused,  the  printed  picture  is  still better than
a     picture     in     real    180*180dpi    resolution.     The
Ordered-Rectangular-B is specialy usefull for color DTP. You get
nice color pictures with fine high quality text.



            Spiral-Dot-Screen  - <number of colors>


A  wide  range  of  special  effects clustered dither matrices are
available  in  the  graphic  arts  industry  and  all  are  easily
simulated digitally.  Spiral-Dot is such a dither.

The spirol-dot dither is essentially half of the classical screen,
with   dark   squares  growing  to  fill  the  plane  without  the
laternating  light squares.  Spiral-Dot looks quiet similar to the
Halftone-A matrix 0 degree rotated.



            Horizontal  - <number of colors>
            Vertical    - <number of colors>
            FwdDiagonal - <number of colors>
            BckDiagonal - <number of colors>


A  wide  range  of  special  effects clustered dither matrices are
available  in  the  graphic  arts  industry  and  all  are  easily
simulated digitally.  The Line dithers are such dithers.

The  horizontal  (as  well  as  the vertical, forward diagonal and
backward  diagonal)  dither overcome much of the dot gain problems
that the Floyd and Ordered dithers have with inexpensive printers.
These  dithers  (especially  the  diagonal dithers) are especially
good for large printings.


                        Floyd Steinberg
                        ---------------

This is a very popular error diffusion dither method suggested by
Floyd and Steinberg. They argued that a filter with four elements
was the smallest number that could produce "good" results. The
values were choosen to particulary assure the checkerboard pattern
at  the  middle  grey  or shade of color.  This dither method does
provide  a good compromiss of speed and quality.  The reason for the
popularity of this algorithem is clear, several color shade levels
are    represented    by   pleasingly   isotropic,   structureless
distributions  of  dots.   However,  some  shortcomings  are  also
apparent:

1. Correlated artifacts in many of the color shade level patterns.
This can be easily seen by printing a grey scale ramp.

2. Directional hysteresis due to the raster order of processing.
This artifact is most apparent in very light and very dark
patterns.

3. Transient behavior near edges or boundaries.

                    Jarvis, Judice and Ninke
                    ------------------------

In 1976 Jarvis, judice and Ninke reported an error filter with 12
elements. The large filter size does reduce some of the artifacts
seen with the 4 element filter of Floyd and Steinberg, but
directional hysteresis in the very dark and light regions are
increased, and pixels are clustered together more in the middle of
color shade regions. It also sharpen the pictures more.

                            Stucki
                            ------

The Stucki filter uses does provide nearly the same output as the
Jarvis filter, though you may may notice differences in sharpness.


                        Blue Noise 30%-50%
                        ------------------

In trying several combinations of deterministic values in a four
element error filter, non proved better than the famed filter of
Floyd and Steinberg. Two variations of this basic filter are the
Blue Noise dither included with CanonStudio. Both are processed
with  serpentine rasters. The serpentine raster used in processing
is responsible for much of the directional artifact elemination.
The noisy treshold (30% or 50% white noise) breaks up most of the
remaining stable texture patterns yielding good radial symmetry at
the expense of adding some low frequency energy. 

Blue noise is specialy usefull when printing light shades and
fading colors.

All  error  diffusion dither including Blue Noise can produce very
good  results on color printers with little dot gain and very good
registration.   If  it produces a washed out print or particularly
bad patterns, then try another dither (see the custom Ordered-B or
Halftone for instance).


                          ARexx Interface
                          ===============


By  using  the powerful scripting language, ARexx, CanonStudio can
be  controlled  for  automatic print jobs.  Nearly every aspect of
CanonStudio can be controlled from ARexx using simple English-like
commands.   This  chapter  describes the usage of CanonStudio from
ARexx.

Note  that  you  must  have  ARexx  in order to use the facilities
described  in  this  chapter.  Specifically, if the program cannot
locate  the library "rexxsyslib.library", then it will not respond
to  any  ARexx  style requests.  Also, CanonStudio must be startet
with the REXX option (CLI or TOOLTYPE) to enable the ARexx port.


In order to access CanonStudio from ARexx, you must tell ARexx how
to  make  contact  with  CanonStudio.  Specifically, you must tell
ARexx  the  name of the message port which CanonStudio creates for
the purpose of ARexx interaction.

The  port name of the program is called "PRTSTUDIO.n" where "n" is
an extension starting with "1" making the port unique.

Note:   the  name  "PRTSTUDIO"  is  not  an  ARexx  port unique to
CanonStudio.   This port will also be used by similar programs for
other  printer manufacturers.  They all use the same ARexx port and
do  have  a common ARexx comand set so you can share ARexx scripts
with those users.

You  can  make  the connection from ARexx to CanonStudio using the
following ARexx command:

                        address "PRTSTUDIO.1"

ARexx  will  generate an error condition should CanonStudio not be
found.

Note  that  the  ARexx  port  name  is  case specific.  It must be
specified exactly as shown above.

Results:
--------

After   every  command  directed  at  CanonStudio  from  ARexx  is
executed,  CanonStudio  will  fill  in  the  standard ARexx result
variable, "RC", with a return value.  If this value is 0, then the
previous  command executed without error.  If the value of "RC" is
not zero, then it contains an error severity indicator.

In  order  to  receive  additional error indications or to receive
non-error  status  information  back  from  CanonStudio,  you must
request   additional  status  information  from  ARexx  using  the
following command:

                            OPTIONS RESULTS

This  command  must be one of the first executable instructions in
your ARexx program.

If  an "options results" command has been issued, then CanonStudio
will   load   additional   information  into  the  ARexx  variable
"PRTSTUDIO_RESULT".   "PRTSTUDIO_RESULT" can be consulted whenever
{\tt  RC}  is  non-zero  to  gain additional information about the
nature of an error.

When  RC  is  returned  with  a  zero  value  (indicating no error
occurred),  "PRTSTUDIO_RESULT"  will  be  set  to command specific
information.   Note  that  this  means  you must check "RC" before
depending    on    the    data    in    "PRTSTUDIO_RESULT"   since
"PRTSTUDIO_RESULT" may contain either additional error information
or the status information you requested.

The  "PRTSTUDIO_RESULT"  variable  is available only to true ARexx
programs.   If you are sending ARexx style commands to CanonStudio
from  a  non-ARexx  program,  then results which normally would be
passed  back  in "PRTSTUDIO_RESULT" will instead be passed back in
the "rm_Result2" field in the ARexx message structure.

When  CanonStudio is started with the REXX option, it will setup a
database  of  your default values for printing.  The values of the
database  can  than  be altered by using ARexx commands.  Once you
have  setup  the values, you may call the PRINT command from ARexx
and  CanonStudio will print the selected picture with the settings
of  the  database.   You  can  go on with your ARexx script, while
CanonStudio  prints  the  picture  in  background.   You  even may
specify  an  unlimited  number  of  pictures for printing, while a
CanonStudio is still printing the first picture.  CanonStudio does
contain  a  printer  spooler  for keeping control of what has been
printed (well, I would rather call this feature "Multitasking" ;-)

The  database  you  have  read  and/or  write access to from ARexx
contains informations like:

PRINTDX  - print dimension x position in inch.
PRINTDY  - print dimension Y position in inch.
PRINTDW  - print dimension width in inch.
PRINTDH  - print dimension height in inch

PAGEDX   - page dimension x position in inch.
PAGEDY   - page dimension Y position in inch.
PAGEDW   - page dimension width in inch.
PAGEDH   - page dimension height in inch

PAPERDW  - printer page dimension width in inch - this value is read only!
PAPERDH  - printer page dimension height in inch.

RULERDW  - ruler dimension width in inch.
RULERDH  - ruler dimension height in inch.

COPIES    - numer of copies.
STARTPAGE - starting page.

DENSITY   - printer device density setting for printing
            DENSITY may range from 1 to 7.

DITHERMETHOD - dither method to use for printing

COLOR CONTROLS - control over the color adjustments.

and more...


Commands:
---------

GETFILE
GETFILE "DEFAULTFILE"

Pops  up  the  filerequester  and  returns  the  selected  file in
"PRTSTUDIO_RESULT".   In  case  user aborted the requester without
selecting a file, RC will be set to 10 and "PRTSTUDIO_RESULT" does
contains the currently selected file.

SETFILE
SETFILE "PRINTFILE"

The first syntax returns the file set in the database. The second
syntax allows you to define a new picture for printing. The old
selection  will  be returned in "PRTSTUDIO_RESULT".  In both cases
no error is returned.

QUIT

Quits CanonStudio.

SCREENTOFRONT

Pops  the  CanonStudio  screen  to  front.   This command does not
return an error.

SCREENTOFRONT

Pushes  the CanonStudio screen to the back.  This command does not
return an error.

PANEL

Opens  the main processing window and allows the user to setup the
parameters  for  a  picture.   CanonStudio  returns  10  in RC and
"Aborted" in PRTSTUDIO_RESULT if the user aborted the panel window
with  cancel.   In  case an error appears or the selected file was
not a valid IFF file, RC contains 20 and PRTSTUDIO_RESULT "Illegal
file".


PRINTDW
PRINTDW SIZE
PRINTDH
PRINTDH SIZE
PRINTDX
PRINTDX SIZE
PRINTDY
PRINTDY SIZE
PAGEDW
PAGEDW SIZE
PAGEDH
PAGEDH SIZE
PAGEDX
PAGEDX SIZE
PAGEDY
PAGEDY SIZE
PAPERDW
PAPERDH
PAPERDH SIZE
RULERDW
RULERDH

Using  these  commands  you  can  ask  or set a size parameter for
printing.   SIZE  must  be defined in the actual measurement CM or
INCH.  Make sure you set the measurement previously.  In case SIZE
is  illegal,  PRTSTUDIO_RESULT returns "Illegal value" with RC set
to  10.   In case of an error, the size parameters in the database
are  altered to a legal value.  While you may alter a setting with
these  commands,  it's not recommended to set all parameters.  Use
the SETSIZE command instead.




SETSIZE PRINTDW PRINTDH PRINTDX PRINTDY PAGEDW PAGEDH PAGEDX PAGEDY PAPERDH

With  this  command you can set multiple print parameters with one
command.  You may specify as many arguments as you need as long as
you  conform the order above.  This command avoids possible errors
that  might  appear with the single size set commands (PRINTDW...)
because  of temporary invalid parameters.  As result, this command
returns the previous settings of:

PRINTDW PRINTDH PRINTDX PRINTDY PAGEDW PAGEDH PAGEDX PAGEDY PAPERDW PAPERDH

Note  that  you also get PAPERDW as result.  You may use the ARexx
parse  command  for  assigning each value to a wanted var in ARexx
scripts.

In  case  of an error, RC returns 10 and PRTSTUDIO_RESULT "Illegal
value".


CM

Sets the measurement to centimeters.  Automatically transforms the
values  in  the  database  to centimeters.  As result the previous
setting  "INCH" or "CM" is returned in PRTSTUDIO_RESULT.  No error
is reported.
NCH

Sets  the  measurement to inch.  Automaticly transforms the values
in the database to inch.  As result the previous setting "INCH" or
"CM" is returned in PRTSTUDIO_RESULT.  No error is reported.


FANFOLD

Sets  paper  type  to  fanfold.   As  result  the previous setting
"FANFOLD"  or  "SINGLE" is returned in PRTSTUDIO_RESULT.  No error
is reported.

SINGLE

Sets  paper  type  to  single.   As  result  the  previous setting
"FANFOLD"  or  "SINGLE" is returned in PRTSTUDIO_RESULT.  No error
is reported.

DITHER
DITHER CUSTOM|FLOYD|JARVIS|STUCKI|BNOISE30|BNOISE50

Sets  the requested dither method.  As result the previous setting
is  returned  in PRTSTUDIO_RESULT.  In case of an error, RC is set
to 10 and PRTSTUDIO_RESULT to "Illegal value".

VERSION

Returns the current version of CanonStudio (ie. "1").


COPIES
COPIES NUMBER

Sets  the  amount  of  copies  to  print.   As result the previous
setting  is returned in PRTSTUDIO_RESULT.  In case of an error, RC
is set to 10 and PRTSTUDIO_RESULT to "Illegal value".

STARTPAGE
STARTPAGE NUMBER

Sets  the  page  to  start  printing with.  As result the previous
setting  is returned in PRTSTUDIO_RESULT.  In case of an error, RC
is set to 10 and PRTSTUDIO_RESULT to "Illegal value".

DENSITY
DENSITY 1-7

Set the print density.  As result the previous setting is returned
in  PRTSTUDIO_RESULT.   In  case  of an error, RC is set to 10 and
PRTSTUDIO_RESULT to "Illegal value".

MAGENTA
MAGENTA 0 - 100
YELLOW
YELLOW 0 - 100

Sets  the  ink  compensation.   As  result the previous setting is
returned  in  PRTSTUDIO_RESULT.  In case of an error, RC is set to
10 and PRTSTUDIO_RESULT to "Illegal value".

RED
RED -50 - 50
GREEN
GREEN -50 - 50
BLUE
BLUE -50 - 50
GAMMA
GAMMA -50 - 50
CONTRAST
CONTRAST -50 - 50
BRIGHT
BRIGHT -50 - 50

Sets  the color adjustment values.  As result the previous setting
is  returned  in PRTSTUDIO_RESULT.  In case of an error, RC is set
to 10 and PRTSTUDIO_RESULT to "Illegal value".

REDWEIGHT
REDWEIGHT   0 - 20000
GREENWEIGHT
GREENWEIGHT 0 - 20000
BLUEWEIGHT
BLUEWEIGHT  0 - 20000

Sets  the color weights for the color->greyscale transformation in
1/100  percent.   As  result  the  previous setting is returned in
PRTSTUDIO_RESULT.   In  case  of  an  error,  RC  is set to 10 and
PRTSTUDIO_RESULT to "Illegal value".

CONTINUE

After this sending this command, the CanonStudio ARexx port is
removed and the program will pop up the file requester as if it
was started from CLI/Workbench without the REXX parameter. If
the user quits the filerequester, he also quits CanonStudio.

WARNING: do not send further messages after sending this command!

PRINT
PRINT WAIT

With  PRINT  the  currently  selected  file  will be placed in the
printing  queue  with  the  parameters  set  in the database.  The
control  is  returned  to  ARexx  directly  after  specifying this
command.   This  means,  the  ARexx  program  may go further while
CanonStudio  prints  in background.  Because of this, you'll never
receive  a  error message, wether the file was succesfully printed
or  not.   Though,  you  may  get  an error  in  RC  and  a proper
explanation in PRTSTUDIO_RESULT because of illegal settings in the
database.
Different to PRINT, PRINT WAIT does halt your ARexx program until
the  picture you specified has been printed.  In case the printing
was  aborted  by some reason, RC is set to 10 and PRTSTUDIO_RESULT
to "Aborted". Note: skiping the picture does not set RC to 10!

SETASPECT

Sets  the print dimension height (PRINTDH) according to the aspect
of the selected picture.
Note: to find out the aspect of a picture, CanonStudio has to scan
the picture file. Because of this, expect floppy users may have to
wait  some  seconds  until your ARexx program is further executed.
Also, a  valid picture file must be given
SETASPECT    returns    the   previously   selected   PRINTDH   in
PRTSTUDIO_RESULT.
