manpagez: man pages & more
man ico(n)
Home | html | info | man
ico(n)                       Windows ICO handling                       ico(n)



______________________________________________________________________________


NAME

       ico - Reading and writing windows icons


SYNOPSIS

       package require Tcl  8.4

       package require ico  ?1.0.5?

       ::ico::icons file ?option value...?

       ::ico::iconMembers file name ?option value...?

       ::ico::getIcon file name ?option value...?

       ::ico::getIconByName file name ?option value...?

       ::ico::getFileIcon file ?option value...?

       ::ico::writeIcon file name depth data ?option value...?

       ::ico::copyIcon file index file2 index2 ?option value...?

       ::ico::EXEtoICO file ?dir?

       ::ico::clearCache ?file?

       ::ico::transparentColor image color

       ::ico::Show file ?option value...?

_________________________________________________________________


DESCRIPTION

       This  package  provides functions for reading and writing Windows icons
       from ICO, EXE, DLL, ICL, and BMP files.  As used in this module an icon
       is  a  visual  representation of an object.  An icon consists of one or
       more images usually with varying resolution and color depth. Each  icon
       and  image  has  a  resource identifier which may be a text string or a
       positive integer value. Most commands use this  identifier  to  specify
       which icon or image to operate on.


API

       ::ico::icons file ?option value...?
              Returns  a list of icons found in file where each element is the
              name or numeric ID. Recognizes the following options:

              -type fileFormat


       ::ico::iconMembers file name ?option value...?
              Returns a list of images that make up the  icon  with  ID  name.
              Each  element  is  itself  a  sublist  in the format {name width
              height bpp}. Recognizes the following options:

              -type fileFormat


       ::ico::getIcon file name ?option value...?
              Extracts the icon with ID name from file.  The  default  -format
              is image which will return the name of a Tk image containing the
              icon. The resolution and  color  depth  are  selected  with  the
              ?-res?,  ?-bpp?,  and  ?-exact? options.  If -exact is specified
              and there is no exact match, an  error  is  thrown.   Optionally
              -image  may  be used to specify the name of the Tk image that is
              created. If -format is colors then a list of color names in  the
              #RRGGBB  format  is  returned. Each list element is a horizontal
              row. Each horizontal row contains a list of colors for  all  the
              pixels  in  that row from left to right. If -format is name then
              the resource name of the image chosen is returned.  This is use-
              ful for calling writeIcon or getIconByName.  Recognizes the fol-
              lowing options.

              -type fileFormat

              -format value

              -image value

              -res value

              -bpp value

              -exact value


       ::ico::getIconByName file name ?option value...?
              Extracts the image with ID name from file. This name  should  be
              the  name of a specific image as returned by ::ico::iconMembers,
              not an icon name returned from  ::ico::icons.  If  there  is  no
              matching  resource ID in file an error is thrown. Recognizes the
              following options:

              -type fileFormat

              -format value


       ::ico::getFileIcon file ?option value...?
              This command is only functional when running under  Windows.  It
              reads  the  Windows  registry  to determine the display icon for
              file as it would appear in Explorer or similar.  file  does  not
              need to exist and may also be specified as a file extension with
              a leading dot. If file is a directory or you specify the special
              name  Folder  then  the  icon representing a folder is returned.
              This command takes the same arguments and usage as getIcon:

              -format value

              -image value

              -res value

              -bpp value

              -exact value


       ::ico::writeIcon file name depth data ?option value...?
              Writes an image to file. name is the resource identifier of  the
              image  in  file  to  write.  When writing to an EXE, DLL, or ICL
              file you may only overwrite existing icons with an icon  of  the
              same  dimensions and color depth. No icons may be added to these
              file types.

              When writing to BMP the name is ignored as this type can contain
              only  one  image.  This  means if the file already existed it is
              completely overwritten.

              When writing to an ICO or ICODATA file  if  the  name  specified
              does  not  exist then an image is appended and will be named the
              next in sequence (the specified name is ignored). Images in  ICO
              and  ICODATA  files may be overwritten with differing dimensions
              or color depths.  Note that you will get  strange  results  when
              displaying  icons  if you fail to change every image which makes
              up a given icon.

              integer depth (in)
                     This argument must have a value of 1, 4, 8, 24, or 32. If
                     data has more colors than the color depth allows an error
                     will be generated.

              options data (in)
                     This argument is either a list of colors  in  the  format
                     returned  by ::ico::getIcon -format colors or the name of
                     a Tk image.

       Recognizes the following options.

              -type fileFormat


       ::ico::copyIcon file index file2 index2 ?option value...?
              Copies the icon at index in file to index2 in file2.

              -fromtype fileFormat

              -totype fileFormat


       ::ico::EXEtoICO file ?dir?
              Extracts all icons from the executable file to ICO files  placed
              in dir. ?dir? defaults to the directory file is located in. Icon
              files will be named in the form file-ID.ico where ID is the icon
              resource identifier.

              -type fileFormat


       ::ico::clearCache ?file?
              The  ::ico::getIconList  command caches icon offsets inside EXE,
              DLL, ICL, and ICO files in order to speed up  extraction.   This
              command  clears that cache for the specific ?file? or all files.

       ::ico::transparentColor image color
              If image is a single word it is assumed to be the name of  a  Tk
              image.   All  pixels  matching  color  in  the image will be set
              transparent.  Alternatively, image may be a color list in  which
              case a modified list is returned.

       ::ico::Show file ?option value...?
              Application  level  command  which displays a window showing all
              the icons in file and their name.

              -type fileFormat

              -parent pathName



EXAMPLE

           button .explore -image [::ico::getIcon explorer.exe 0 -name explore -res 16 -bpp 8]

           set i [lsearch -inline [::ico::iconMembers tclkit.exe 0] {* 32 32 8}]
           set colorlist [::ico::getIconByName tclkit.exe [lindex $i 0] -format colors]



LIMITATIONS

       Icons may not be added or removed from file types other than ICO. Icons
       in  these  files may only be replaced with icons of the same dimensions
       and color depth.

       Icons of 8bpp or lower must include black in the pallete, this means if
       your  icon  does  not  have black in it, you will need to leave a color
       free so that it may be included by writeIcon.

       There is currently no way to read alpha channel information from  32bpp
       icons.

       Tk  images do not have an alpha channel so the only way to write a true
       32bpp icon is from a color list. writing a 32bpp icon from a Tkimage is
       identical to writing a 24bpp icon.


KEYWORDS

       dll, entry, exe, ico, icon



ico                                  1.0.5                              ico(n)

Mac OS X 10.8 - Generated Fri Sep 7 16:14:52 CDT 2012
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.