############################################################################
#
#	File:     gifs2pdb.icn
#
#	Subject:  Program to produce custom palettes from GIF images
#
#	Author:   Ralph E. Griswold
#
#	Date:     April 13, 2000
#
############################################################################
#
#  This file is in the public domain.
#
############################################################################
#
#  This program makes a custom palette database from the colors in GIF
#  images
#
############################################################################
#
#  Requires:  Version 9 graphics  
#
############################################################################
#
#  Links:  basename, palettes, wopen, xcode
#
############################################################################

link basename
link palettes
link wopen
link xcode

global PDB_

procedure main(args)
   local file, name, output, colors, win

   every file := !args do {
      win := WOpen("image=" || file, "canvas=hidden") | {
          write(&errout, "*** cannot open image: ", image(file))
          next
          }
      name := basename(file, ".gif")
      colors := set()
      every insert(colors, Pixel(win, 0, 0, WAttrib(win, "width"),
         WAttrib(win, "height")))
      WClose(win)
      makepalette(name, sort_colors(colors)) |
         write(&errout, "*** cannot make palette from ", image(file))
      }

    xencode(PDB_, &output)

end
