
                        TUTORIAL.TXT for HUBBLE 2.20

1. USES OF SOME IMAGE PROCESSING OPERATION.

   -  A NOTES ON 24-BITS TRUE COLOR IMAGE
      When displaying a 24-bits true color image, there can be two
      versions to be displayed. By default, If the display adapter
      is not capable of displaying true color, the ditherred version
      (can be turn on and off from "Option Menu") will be displayed.
      However, in some instances, when displaying a ditherred version, 
      some tiny stray image may be visible at some edge, this will not 
      effect the correctness of the image's subsequent operation.
   
   - EQUALIZATION
     This method of image processing can help obtaining image with
     more desirable intensity distribution. The easiest is to use the
     default equalization to obtain better contrast. However, if the result 
     is still not good enough, users can choose "Customized Contrast Control"
     from the "Process Menu". Under this method, users can interactively
     adjust the intensity distribution of the image. If two standard 
     equalization method still cannot give the desired result, A "Customized"
     mothod can be use. If users choose this method, different intensity
     distribution can be specified by just click or drag the mouse on the
     intensity distribution histogram. Resulting effect can be observed
     immediately after users release the mouse button. Users can easily
     and precisely achieve this intensity re-distribution at will without
     having to know the theory behind the operation.
     
   - TONE AND COLOR ADJUSTMENT
     This is similar to EQUALIZATION mention above, except that users
     adjust the intensity level instead of the intensity itself. However,
     this method may not give noticeable result for pure color image.

   - COLOR CONVERSION AND DITHERING
     See below.

   - FILTERING OPERATION
     In case users don't like the result because it's too bright or too dark,
     a scaling factor can be used. Right shift mean multiply by 2, left shift 
     mean devide by two. Remember, if used multiply or devide as a scaling 
     method, do not use a value of zero.

   - BIBLIOGRAPHY
     1. Practical Image Processing in C, Published by Johon Wiley and Son.
        (sorry about Author's name, I forgot, Will be included next time)
     2. Supercharged Bitmapped Graphics, By Steve Rimmer. 
        Windcrest/McGraw-Hill.
     3. Programmer's Guide to PC & PS/2 VIDEO SYSTEM, By Richard Wilton.
        Microsoft Press.
     4. Image Processing in C, by Dwayne Phillips, Prentice Hall.
        (Long running articles in C user's Journal, beginning on '90)

2. USE OF DESKTOP PUBLISHING FEATURES IN DOCUMENT BASED PROCESSING

   A. A Tour Through Sample HUBBLE Document File

      A.1 Switch to [Document Based Processing] from [Option Menu] (Alt-O, D)
      A.2 Load HUBBLE document file *HUBBLE.PUB* Using [File Menu] (Alt-F, O)
      A.3 After the HUBBLE document is loaded, Users can edit paragraph text 
          of the document using cursor keys, <enter> keys, <Del> key, etc.,
          or add text to a paragraph text.
      A.4 To manipulate other graphic element, choose one of the menu commands
          or click on a toolbox icon.
      A.5 To Manipulate (Move/Resize/Delete) bitmap image, choose (Alt-E, M) 
          from the [Edit Menu]. Move mouse cursor on or around the bitmap
          image, a hand cursor means users can move the image, a cross-arrow
          means users can resize the image. Drag mouse (move mouse while left
          button is down) to move or resize. Use <Del> key to delete the image.
      A.6 Press [Esc] key to return to normal default operation. (Text input)
      A.7 Click on [Drawing Tools] icon (The one with line, square, and circle)
          To move, resize, add, or delete drawings.
          E.g. Click on <SIZE> button to resize or move the current drawing.
          Press <Enter> key to signal the operation (move/resize) is completed.
          Click on <Cancel> to return to normal default operation.
      A.8 Users can also reposition relative top-bottom placement of graphic 
          elements or drawings from [Edit Menu] (Alt-E, n) (Edit, Reposition).
          Use <TAB> key to select current drawing, up-arrow to reposition the 
          drawing to the top, use down-arrow to reposition drawing bottom of
          the drawing stack. Press [Esc] key to return to normal default 
          operation. (Text input)

   B. Document Resolution and Printing

      B.1 Users can customize page layout and paragraph format from
          [Option Menu] (Alt-O, P). A Page and Paragraph Format Dialog
          is invoked. One item in the dialog box is the setting of 
          document resolution. This setting only affect the printing
          quality of the document.
      B.2 The best result is when the resolution setting is the same 
          as the printer's resolution. However, if the printer 
          resolution is too high, HUBBLE may not be able to handle
          (It consume too much memory). In this case, choose a lower
          resolution. In general, choose a resolution between 100 
          to 200 pixels/inch.
      B.3 Choose [Print Preview] for several resolution settings to
          determine best resolution setting.
2. USE OF DESKTOP PUBLISHING FEATURES IN DOCUMENT BASED PROCESSING (Cont'd)

   C. Available Fonts Style and Size

      C.1 Most elements of HUBBLE document, drawings, image, etc. can be 
          move or resized. However, "Fonts Size and Style" for paragraph
          text input is limited to those installed on the Windows.
      C.2 There is a way to customize paragraph text "Fonts SIZE" when
          printing. The trick is to use [Page and Paragraph Format] from
          [Edit Menu] to define document page size. However, when printing, 
          users can reduce or enlarge the printing page.
      C.3 For example, users define a document page of 4" by 5". However,
          when printing, users can chose the printing page size (from
          [print Dialog]) to be 8" by 10". In effect, users are printing
          the document page which a "Fonts SIZE" twice the size of those
          available from the fonts installed on the system.

3. USE OF TOOLBOX:(GENERAL) AND OTHER IMAGE OR DOCUMENT EDITING COMMANDS

   A. %%%%%%%%%%%%%%% IMPORTANT SPECIAL NOTICES %%%%%%%%%%%%%%%%%%%

      A.1 *** BRUSH SELECTION and LINE SELECTION *** from [Option Menu]
          LINE SELECTION affect the attributes of drawing tools.
                        (Tools with icon of a line, a circle, a square)
          BRUSH SELECTION affect the attributes of pencil tool. 
                        (freehand drawing, Tools with icon a pencil)
      A.2 Generally, users signal the end of an operation by
          pressing the <Enter> key.
      A.3 Usually, there may be several image editing elelments (drawings,
          bitmap image, etc.) available at the same time. Depend on specific
          tools or commands used, users may be able to know which editing
          element is the current (active) one by making one of the following
          observation:
          A.3.1 By moving the mouse cursor, a hand-shaped cursor will appear
                above the active editing element.
          A.3.2 Color of the editing element is inverted. This situation is
                is typical for MOVE/RESIZE operation.
          A.3.3 By changing the editing element's attribute, e.g. by toggling
                between OPAQUE and TRANSPARENT mode.
3. USE OF TOOLBOX:(GENERAL) AND OTHER IMAGE OR DOCUMENT EDITING COMMANDS (Cont'd)

   B. GENERAL CONCEPT
      B.1 Users access to toolbox by clicking on the appropriate
          <TOOLBOX> icon. A set of <PUSH BUTTON> will appear on the 
          status line from which users can choose to perform or fine 
          tune the operations. After users perform a task, such as 
          enter text lines or make drawings, the program still allow users 
          to make further adjustment. Commonly available feature are 
          <SIZE> (resize and move), <FG> changing the foreground color, 
          <BG> changing the background color, etc.     
          Modifications made to the image are grouped in **logical units**
          of operation, such as a drawing, a line of text, or a group 
          of pixels. Hence <SIZE>, <FG>, <BG>, etc. are applied to the
          whole unit of operation. Users can have many unit of operation
          (e.g. many geometric drawings) at the same time, and can change
          focus to different unit by using <TAB> key of push <TAB>button
          on the status line.
      NOTES:
          All change made by toolbox are still not committed to 
          the image (changes have to be committed to the image to become
          part of the image) until users click on the <WRT> (write) or 
          <OK> push button.
          Please refer to online help for detail.
          -- users can click on <cancel> push button to end the operation. --

   C. Notes on TOOLBOX:(RECTANGLE) and TOOLBOX:(Image Patching)
      C.1 Similarity and Difference
          TOOLBOX:(RECTANGLE) allow users to define a rectangular
          area on the image and then users can either <COPY>,
          <CUT>, <SCALE>, or <Stitch or Image Patching>
          (push <OK> button).
          TOOLBOX:(Image Patching) only allow users to do
          <Stitch or Image Patching> but allow users to select 
          different shapes for the selected area.
      C.2 Current Limitation
          Some limitation for TOOLBOX:(Image Patching) may restrict
          its use. Please read the file Newinfo.txt.
      C.3 <COPY-RECTANGLE> function is also available through [Edit-Menu].

   D. Notes on TOOLBOX:(RECTANGLE) and [Edit Menu]-[Trim Image]
      Trim image is an alternate implementation of <COPY-RECTANGLE> in
      TOOLBOX:(RECTANGLE). However, its using keyboard to defined the 
      selected rectangle.

   E. Current Limitation
      Please read the file Newinfo.txt.

4. USE OF TOOLBOX:(Image Patching) 
   4.1 A Typical scenarios and steps of using TOOLBOX:(Image Patching)
       a.) Support we want to change text on HUBBLE.BMP from "version 1.08"
           to "version 2.20"
       b.) Open HUBBLE.BMP, adjust display window to portion the image,
           e.g. maximize the window.
       c.) Click on TOOLBOX:(Image Patching) icon.
       d.) Click on <RECT> on the status line.
       e.) Draw a rectangle on the right of "version 1.08" to select an area.
       f.) Click on <SIZE> on the status line to adjust the selected rectangle.
       g.) Click on <Put> on the status line to move the selected area to
           the left until it cover text "1.08" as follow:
           g.1) Move mouse cursor over the selected area. (mouse cursor will
                change to hand shape cursor.
           g.2) Drag mouse to the left (move mouse while left button is down)
                until the selected area cover text "1.08".
           g.3) Click on <WRT> on the status line.
                Now, text "1.08" will be replaced with background image.
       h.) Click on <Cancel> on the status line to exit TOOLBOX:(Image Patching).
       i.) Click on TOOLBOX:TEXT icon.
       j.) Enter "2.20" at the location which previously display text "1.08".
       k.) Click on <TRAN> on the status line to show image background.
       l.) Click on <SIZE> on the status line to adjust the location and size
           of the text entered.
       m.) Push [RETURN] after finish adjust text entered in l.)
       n.) Click on <WRT> on the status line.
       o.) Click on <Cancel> on the status line to exit TOOLBOX:TEXT.
           
   4.2 

5. USE OF TOOLBOX:(PENCIL) and TOOLBOX:(DRAWING)
   A. Basic Differences (Brush Style and Line Style)
      TOOLBOX:(PENCIL) is a pixel editing tools, while
      TOOLBOX:(DRAWING) is a line drawing tools. Hence,
      shape and size of pixel using TOOLBOX:(PENCIL) are
      controlled by brush style (from Option menu), and
      shape and size of drawing using TOOLBOX:(DRAWING) 
      are controlled by line style (also from Option menu).
   B. Logical Unit of Operation.
      A geometric drawing is considered a unit of operation.
      For freehand drawing (either from TOOLBOX:(PENCIL) or
      TOOLBOX:(DRAWING)), all drawing entered from initial
      drawing until users push the [RETURN] key are considered
      a logical unit. 
      Users can modify a drawing unit by clicking on the <SIZE> 
      button, then drag mouse on the image to move or resize the
      drawings. For freehand drawing, users can modify the pixel
      boundary after a group is formed by pushing the [SPACE BAR], 
      and push [RETURN] to complete the operation.
6. CUSTOM COLOR CONVERSION AND DITHERING
   6.0 Users can convert an image without using -Dithering- technique.
       If dithering is disabled, operation speed will be much faster.
   6.1 Display Update
       To get updated display on source or target image on "Custom Conversion"
       dialog box, click on the respective image display areas.
   6.2 A Typical steps of using Custom Color Conversion
       a.) Open an image file from File Menu.
       b.) Select Custom Color Conversion and Dithering from Transform Menu.
       c.) Select dithering technique such as "Error Diffusion" from the
           "Dithering Method" listbox. (Other dithering techniques may have 
           more restriction on palette which can be selected).
       d.) Select "Color" from Target Quality and choose number of color
           such as 256 or 16 colors.
       e.) Click on "Build Palette >>" to make palette selection.
       f.) Click on "Disable Dithering" check box to match the target image
           with source image without using dithering technique. (This step is 
           advised to be done last and is recommended if the target image is 
           to be used for further editing such as area fill operation)
       g.) Click on "TEST" or "OK" button.
***6.3 Scenarios where Custom Color Conversion and Dithering can be used
       a.) When users want to merge two images or stitch one image over another
           but can not be done because the two image are not compatible either
           because they have different number of color or using different set
           of color palette. e.g. imageA has 256-colors and 
           imageB is a true-color image.
           imageA = IBM$4A.BMP, imageB=IBM$4B.BMP
           a1.) open imageA
           a2.) Paste the image (imageA) to clipboard. 
                (to make palette of imageA available through clipboard)
           a3.) Open imageB.
           a4.) Select Custom Color Conversion and Dithering from 
                Transform Menu.
           a5.) Select dithering technique such as "Error Diffusion" from the
                "Dithering Method" listbox. (Other dithering techniques may 
                have more restriction on palette which can be selected).
           a6.) Select "Color" from Target Quality and choose 256-color.
           a7.) Click on "Build Palette >>" to make palette selection.
           a8.) Select "Clipboard Palette" the click on "OK".
           a9.) Click on "Disable Dithering" check box to match the target 
                image with source image without using dithering technique. 
                (This step is advised to be done last and is recommended if 
                the target image is to be used for further editing such as 
                area fill operation)
           a10.) Click on "OK" button.
           ==> the resulting image can be used to merge or stitch with imageA.
   6.4 NOTES
       a.) Sometime it's better disabled dithering Technique for some kind
           of subsequent processing.
       b.) At the build palette menu, there is a checkbox to limit
           palette selection.
       c.) If after the palette is built, <OK> button may still be disabled,
           this is because the selected dithering method is not compatible
           with current selected palette. Choose other dithering method from
           the listbox or change to other set of palette. (users may also
           have to uncheck the "Disable Dithering" checkbox to enable the
           dithering method listbox)
        (** A somewhat intertwined selections to make everything compatible **)
7. GRAYSCALE/COLOR CONVERSION, -VS- CUSTOM COLOR CONVERSION AND DITHERING
   7.1 GRAYSCALE CONVERSION
       Are used to change image to color format with higher number of 
       grayscale levels and/or convert color image to grayscale image
       by averaging intensity of all color components using a pre-specified
       formular.
   7.2 GRAYSCALE/COLOR CONVERSION
       Are used to change image to color format with higher number of colors.
   7.3 CUSTOM COLOR CONVERSION AND DITHERING
       Are used to convert the color format of an image to a different/new
       set of color palette with the same or reduced number of colors. Without
       dithering, the conversion is carried out using nearest color matching
       method. With dithering, a wide range of methods are available (depending
       on users preferences and suitability to specific needs) to approximate
       the original image and give users the illusion that the image has
       more colors than those available from the color palette used.

8. HOW MAKE IMAGE COMPATIBLE
   8.1 If the image is from clipboard, paste the image from clipboard.
   8.2 suppose IMAGEa is the image with desired palette, and we want to
       convert IMAGEb to be compatible (for merging and stitching)
       with IMAGEa.
   8.3 Copy IMAGEa to clipboard to make the palette available.
   8.4 Use GRAYSCALE/COLOR CONVERSION (usually COLOR CONVERSION) to convert
       IMAGEb to have the same (or even higher) number of colors than IMAGEa.
   8.5 Use CUSTOM COLOR CONVERSION AND DITHERING and using the palette from 
       clipboard (copied from step 6.3).
   8.6 Disable dithering.
   8.7 Complete the CUSTOM COLOR CONVERSION AND DITHERING process.
   8.8 Also see --> 
       (4). GRAYSCALE/COLOR CONVERSION, -VS- CUSTOM COLOR CONVERSION AND DITHERING
       (5). CUSTOM COLOR CONVERSION AND DITHERING
   
9. Stitch Image From Clipboard
   If the clipboard image is not compatible to the base image (current
   image which users want to have clipboard image stitch on).
   9.1 Convert clipboard image to become compatible
       Users should "Paste Image (Edit menu)" to a window first, then "Copy
       base image to clipboard" (To make base image's palette available).
       Next, users should use "CUSTOM CONVERSION and DITHERING" to convert
       make the newly pasted image by using palette from clipboard as
       its new palette. The method is explained in TUTORIAL.TXT, HUBBLE.DOC, 
       and HUBBLE online help.
   9.2 Convert base image to become compatible with clipboard image 
       Users should "Paste Image (Edit menu)" to a window first, then 
       use "CUSTOM CONVERSION and DITHERING" to convert base image to 
       have palette compatible with the clipboard image. Users then
       use this newly converted image as the base image to 
       "Stitch Image From Clipboard". See TUTORIAL.TXT, HUBBLE.DOC, 
       and HUBBLE online help on "CUSTOM CONVERSION and DITHERING" .

10. HOW TO USE THE PROGRAM
      A. Help will always be available by pressing the F1 key.  *********
      B. If your scanner manufacturer do not supply TWAIN compatible driver,
          you can use your scanner software to acquire image, save it in
          BMP, PCX, or TIFF formats. Then use HUBBLE for further processing.
      C. Use <DEL> key to delete current item of drawing, area fill, 
          modification, etc. in TOOLBOX.
     ENERAL NOTES
         By default, A <Reduced Image> window will be displayed, and may be used
         as a place for performing various house-keeping chores and for setting
         up global variables, etc.

