Palette - Look Up Table - Image Display

Every image that is displayed is first scaled to 8 bits (unsigned byte)

and then given a palette or Look Up Table (LUT).  The default LUT ramps

linearly from black for zero to white for 255.  The LUT is modified by

the sliders.  The LUT is specified by GIF files and TIFF files with a

Colormap and 8 bit pixels.

Change palette to gray scale        Simply changes the palette to

                                    the default b/w linear ramp.

Display gray level component        Displays new image showing the

                                    value ('V' of RGB->HSV) or

                                    brightness component.

      Equivalent to 'fix palette' in NIH Image.

      Displays an 8 bit gray level image showing the Intensity

      component of the color or gray level of what appears on the

      screen (the current palette).  Also works with RGB window.

Copy palette      Copies the palette from the selected window to the

                  front window. 

                  To see the palette NIH Image style:

                        '***Buttons*** / Edit / Linear Ramp'

                        Click on ramp if it is not in front.

                        'Palette / Copy Palette', select source window.

=======================================================================

Programming Details

-------------

display_image function (new window from array or update pixmap)

DISPLAY-IMAGE-FILES

  display_image ara <name>

    (setf (pixels , or (red-pixels, etc.

    (update-pixmap w :invalidate t)

  (when palette

      (setf (pixmap-palette w) palette)

      (update-pixmap w :only-palette t :invalidate t)

  display_image ((w pixmap-view) name &optional dummy)

  "Redisplays the image - image array is already there.

   Applys the same palette that it had before."

   ;; Set the scaled image and the scaling information.

    (update-pixmap w :invalidate t)

----------------

Pixmap functions

 (pixmap.lisp)

cp_make_pixmap cp_pixmapp

cp_pixmap_type cp_pixmap_dims

cp_display_pixmap cp_free_pixmap

 (pixmap-window.lisp)

update-pixmap

   To change the palette, simply assure that pixmap-type is :8-bit,

   and place the new palette (array of 256 cp_make_color elements)

   in pixmap-palette.  Then call update-pixmap.  If you want to change

   just the palette , pass :only-palette as t.

      :redraw           (also calls cp_redraw_window)

      :invalidate       (also calls cp_invalidate)

      :only-palette     (CP_INSTALL_PALETTE only.  Otherwise:

                              update-pixmap-pixels

                              cp_make_pixmap

                              cp_free_pixmap

-----------------

Palette functions (palette.lisp)

cp_default_gray_palette

cp_install_palette (pixmap.lisp)

      (cp_install_palette (pixmap 3bw) (log-3-band-palette))

      (cp_invalidate 3bw)

COPY-PALETTE

fix-palette

  (setf (pixels w) (fix-image-array-to-default-palette (pixmap-pixels w)

     (pixmap-palette w)))

  (setf (pixmap-palette w) (cp_default_gray_palette))

  (display_image w nil)

=======================================================================