Provided by: pngcrush_1.7.9-1_i386 bug


       pngcrush  —  optimizes  (or  modifies)  PNG (Portable Network Graphics)


       pngcrush [options]  [infile.png]  [outfile.png]

       pngcrush -e ext [options]  [file1.png]  [file2.png] ...

       pngcrush -d dir [options]  [file1.png]  [file2.png] ...


       pngcrush is an optimizer for PNG  (Portable  Network  Graphics)  files.
       Its  main  purpose  is  to reduce the size of the file's IDAT chunk (or
       stream).  pngcrush can also be used to modify a PNG's ancillary  chunks
       (example:   transparency   information   or   textual  comments).  Some
       familiarity with the PNG (pronounced 'ping') format may be  helpful  to
       users  of pngcrush. pngcrush has reasonable defaults so running with no
       options may produce smaller files.  This document briefly describes the
       PNG  format  where  necessary  to  understand  pngcrush.   For complete
       documentation, see :


       The actual pixel data of a PNG is contained in one or many IDAT chunks.
       To  make  an IDAT chunk PNG encoders take the raw pixel data, filter it
       with one of 5 different filters (See  Section  "Filter  Types"  )  then
       compress  it.   pngcrush  reduces  the  size of PNG files by choosing a
       different filter or compression methods from those used  in  the  input
       file.   pngcrush tries multiple filter/compression methods and compares
       the size of the resulting IDAT chunk.   The  filter/compression  method
       with the smallest IDAT chunk is chosen for the output file.  The filter
       and compression levels pngcrush tries are controlled  by  command  line
       options.   All  of  the  filter  methods  and  compression  levels  are
       lossless; they will not reduce image quality.

       In addition to reducing the size of a PNG  file,  pngcrush  can  modify
       ancillary chunks.   Ancillary chunks are optional information including
       transparency  (tRNS),  gamma  (gAMMA),   standard   RGB   color   space
       conformance  (sRGB)  or  textual information (iTXt, tEXt or zTXt).  See
       the associated command line options for details on  manipulating  these


       -already size
                 If  file  has an IDAT chunk greater than the integer size, it
                 will be considered to be already  crushed  and  will  not  be
                 processed further.

       -bit_depth n
                 Force  output  bit  depth to n. See Section "Color Types" for
                 bit depth restrictions.

       -bkgd r g b
                 Specify the default background color for the image.  Some PNG
                 viewers  will  use this background when displaying the image.
                 Background is specified by r, g and b integers between 0  and
                 (2^bitdepth)-1.  For  output  color  type  0 and 4 (gray, see
                 section "Color Types" ) the green index is used as  the  gray
                 level of the background.

       -brute    Use brute force, try 114 different filter/compression methods
                 [11-124]. This option is very  time-consuming  and  generally
                 not  worthwhile.  You  can  restrict  this  option to certain
                 filter types, compression levels, or strategies by  following
                 it with -f filter,  -l level, or -z strategy. For example:

                           pngcrush -brute -f 0 infile.png

                 Will try only methods that use filter type 0.

       -c type   Set  the output image color type to type, one of [0, 2, 4, or
                 6] (see section "Color Types" ).  Future versions of pngcrush
                 will  also  allow  color  type  3,  if there are 256 or fewer
                 colors present in the input file.  Color types 4  and  6  are
                 padded  with  an  opaque alpha channel if the input file does
                 not have alpha information. You can use 0  or  4  to  convert
                 color  to  grayscale.  Use 0 or 2 to delete an unwanted alpha
                 channel. Default is to use same color type as the input file.

       -d dir    Specify a directory for all output files.  All  output  files
                 will have the same name as their respective input files.

       -dou      Double  the  images  gamma.  This is used for fixing gamma in
                 PhotoShop 5.0c5.02 files. It has been claimed  that  the  PS5
                 bug  is  actually more complex than that, in some unspecified

       -e ext    Specify a new extension ext for all output files.

       -exit     Forces pngcrush to call exit() rather than return()  when  it
                 is  finished.  It  is  unclear to this writer why this option

       -f filter Specify filter (see section "Filter Types" ) to use with  the
                 method specified in the preceding -m or -brute option.  Valid
                 filter types are [0-4]  :  use  specified  filter,  [5]:  use
                 adaptive filtering.

       -fix      Fix  otherwise  fatal  conditions  such  as bad CRCs. The CRC
                 (Cyclic Redundancy Check) is present in every chunk  and  can
                 alert the decoder of corrupt data.

       -force    Write  a new output file even if larger than input. Otherwise
                 the input file will be copied to output if it is smaller than
                 any  generated  file  and  no  chunk  additions, removals, or
                 changes were requested.

       -g gamma  Value to insert in gAMA chunk, only if the input file has  no
                 gAMA  chunk.   To  replace  an  existing  gAMA chunk, use the
                 -replace_gamma option.  Some decoders will use the gAMA chunk
                 to  more  accurately  display  the  image.  gamma relates the
                 output  intensity  to  the  input  samples  (input_sample   =
                 light_out  GAMMA).   gamma can be any integer between 0 and 2
                 32 and is interpreted as GAMMA*100000. For  example,  if  you
                 wanted a GAMMA of 1/2.2, you would enter 45455 for gamma.

       -h        Display help and legal notices.

       -itxt b|a keyword text
                 Insert  an  (uncompressed)  iTXt chunk. b|a indicates whether
                 chunk should be inserted before or after the IDAT chunk, (see
                 Section "Text Chunks" ).

       -keep chunk_name
                 keep  named  chunk  chunk_name  even  if  the  PNG datastream
                 becomes invalid. Currently only  dSIG  is  recognized  as  an
                 acceptable value.

       -l level  zlib compression level to use on the filtered IDAT chunk with
                 the method specified by the preceding -m  or  -brute  option.
                 zlib compression levels are integers between 0 and 9.  0 = no
                 compression,  1  =  fastest  compression,  and   9   =   best

       -loco     Make  the  file  more  compressible by performing a lossless,
                 reversible, color transformation. The resulting file is a MNG
                 format  file,  not  a  PNG, and should be given the .mng file
                 extension. The loco option has  no  effect  on  grayscale  or
                 indexed-color PNG files.

       -m method pngcrush method [0-200] to try (0 means try all of 1-10). Can
                 be repeated as in -m 1 -m 4 -m 7. This can be useful  if  you
                 run  out of memory when pngcrush tries methods 2, 3, 5, 6, 8,
                 9, or 10  which  use  filtering  and  are  memory  intensive.
                 Method  1,  4,  and 7 use no filtering; methods 11 and up use
                 specified filter, compression level, and strategy.

       -max maximum_IDAT_size
                 Set the maximum idat  size  to  be  used  when  creating  the
                 compression buffer.[1 through 524288]

       -mng      write a new MNG, do not crush embedded PNGs.

       -n        Do not do compression or write output file. This is useful in
                 conjunction with the -v option to get info, or to test decode

       -p        This  option tells pngcrush to pause and wait for [enter] key
                 whenever the screen fills.

       -plte_len n
                 Truncates the PLTE. The PLTE chunk contains  from  1  to  256
                 palette  entries. Be sure not to truncate it to less than the
                 greatest index present in IDAT.

       -q        quiet, the opposite of verbose.

       -rem chunkname
                 Name of an ancillary chunk or optional PLTE to be removed. Be
                 careful  with  this.  Please don't use this feature to remove
                 transparency,   gamma,   copyright,   or    other    valuable
                 information.   To  remove  several  different chunks, repeat:
                 -rem tEXt -rem pHYs.  Known chunks (those in the PNG spec  or
                 extensions   document)  can  be  named  with  all  lower-case
                 letters, so -rem bkgd is equivalent to -rem bKGD.  But  note:
                 -rem  text  removes  all  forms of text chunks; Exact case is
                 required to remove unknown chunks.   To  do  surgery  with  a
                 chain-saw,  -rem  alla  removes  all  known  ancillary chunks
                 except for tRNS, and -rem allb removes all but tRNS and gAMA.

       -replace_gamma gamma
                 Force a specified gamma in the output file even  if  gAMA  is
                 present in the input. See the -g for more information.

       -res dpi  Write  a pHYs chunk with a resolution of dpi.  The pHYs chunk
                 indicates the desired pixel size.

       -save     Force writing of unknown chunks.   If  the  input  image  has
                 chunks  that  are  not  part  of  the PNG specification, they
                 should not be discarded.

       -srgb n   Set value of rendering intent for sRGB chunk to n where n  is
                 between  0 and 3. The appropriate rendering intent depends on
                 how the image will be used:

                           0 - Perceptual: when good adaptation to the  output
                           device   gamut   at  the  expense  of  colorimetric
                           accuracy is desired, example: photographs.

                           1 - Relative colorimetric: images  requiring  color
                           appearance  matching (relative to the output device
                           white point), example: logos.

                           2: Saturation: preservation of  saturation  at  the
                           expense of hue and lightness is preferred, example:
                           charts and graphs.

                           3:   Absolute   colorimetric:   images    requiring
                           preservation   of  absolute  colorimetry,  example:
                           proofs (previews of images destined for a different
                           output device).

       -text [b|a] keyword text
                 Insert  a tEXt chunk. [b|a] indicates whether chunk should be
                 inserted before or after the IDAT chunk, (see  Section  "Text
                 Chunks" ).

                 Reset file modification time to newer time stamp. This is the

                 Retain input file modification time  stamp.  The  default  is
                 -newtimestamp which is the opposite of this option.

       -trns index red green blue gray
                 Insert a tRNS (transparency) chunk, if no tRNS chunk found in
                 file.  You must give all five parameters  regardless  of  the
                 color  type,  scaled  to  the  output  bit depth. See the PNG
                 documentation for details.

       -trns_array n trns[0] trns[1] ... trns[n-1]
                 Insert a tRNS (transparency) chunk, if no tRNS chunk found in
                 file. See the PNG documentation for details.

       -v        Display more detailed information. Repeat the option (use "-v
                 -v") for even more.

       -w size   Specify size in kbytes (or bytes in the case of 512)  of  the
                 sliding  compression  window where size is one of [32, 16, 8,
                 4, 2, 1, or 512]. It's best to use the  default  (32)  unless
                 you run out of memory.  The program will use a smaller window
                 anyway when the uncompressed file is smaller than 16k.

       -z strategy
                 Specify the zlib compression strategy [0, 1, or 2] to be used
                 on  the  filtered  IDAT chunk for the method of the preceding
                 -m.   The  zlib  strategy  parameter  tunes  the  compression
                 algorithm and is one of:

                    ·  0  :  default, most compression is aimed towards string

                    ·  1 : some string matching, some Huffman coding

                    ·  2 : use only Huffman coding

       -zitxt [b|a] keyword text
                 Insert a zTXt chunk. [b|a] indicates whether chunk should  be
                 inserted  before  or after the IDAT chunk, (see Section "Text
                 Chunks" ).

       -ztxt [b|a] keyword text
                 zTXt chunk to insert (see -text).

Color Types

       The PNG specification provides for five color types.   The  color  type
       determines  how  the  IDAT  chunk  will  be interpreted by the decoder.
       Choosing a color type appropriate for the color information in an image
       can  in  principle reduce the size. However, certain combinations of -c
       and -bit_depth require color counting which is currently  disabled.  In
       such  cases  no  reduction will take place. Following are the PNG color
       types followed by their supported bit depths (Note  pngcrush  does  not
       support changing a file to color type 3 from another color type.):

          ·  0 : grayscale without alpha channel (1,2,4,8,16)

          ·  2 : true color without alpha channel (8,16)

          ·  3 : indexed color (1,2,4,8)

          ·  4 : grayscale with alpha channel (8,16)

          ·  6 : true color with alpha channel (8,16)

       An alpha channel represents transparency on a per pixel basis. An alpha
       value of  zero  is  completely  transparent.  An  alpha  channel  of  2
       bitdepth-1 is completely opaque.

Filter Types

       The  IDAT  chunk  can optionally be filtered before compression.  These
       filters can make the IDAT chunk more compressible  without  losing  any
       data  and  result  in a smaller PNG file.  These filters are applied to
       the bytes of the IDAT chunk, not  the  pixels.  Following  is  a  brief
       description of the filters, see the PNG specification for details:

          ·  0 : no filter

          ·  1  :  'sub'  transmits  the  difference between each byte and the
             value of the corresponding byte of the prior pixel.

          ·  2 : 'up' transmits the difference between each byte and the value
             of the corresponding byte of the pixel above this pixel

          ·  3  : 'average' transmits the difference between each byte and the
             average of the bytes described in filters 1 and 2

          ·  4  :  'paeth'  computes  a  simple   linear   function   of   the
             corresponding byte in three neighboring pixels (paeth_predictor =
             left + above - upper left), then transmits the difference between
             the  byte  in  question  and  the neighboring byte closest to the
             value of paeth_predictor.

Text Chunks

       Textual information pertaining to an image can  be  conveyed  with  the
       tEXt,  iTXt  and  zTXt  chunks.  All  text  chunks consist of a keyword
       followed by a string.  The following keywords are defined  in  the  PNG
       specification: (you may invent keywords for other purposes):

                 Title: Short title or caption for image

                 Author: Name of image's creator

                 Description: Longer description of image

                 Copyright: Copyright notice

                 Creation Time: Time of original image creation

                 Software: Software used to create the image

                 Disclaimer: Legal disclaimer

                 Warning: Warning of nature of content

                 Source: Device used to create the image

                 Comment: Miscellaneous comment.

       A tEXt chunk stores text in the ISO/IEC 8859-1 (Latin-1) character set.
       zTXt chunks also use  the  Latin-1  character  set,  but  the  text  is
       compressed.   This  can  be  useful for large text chunks.  iTXt chunks
       consist of text in the UTF-8 of the Unicode character set.

       keyword must be at least 1 character and less than 80 characters.  text
       must  be less than 2048  characters when using pngcrush  For  now,  you
       can only add ten tEXt, iTXt, or zTXt chunks per pngcrush run.


       png(5), libpng(3), zlib(3).


       This manual page was written by David  Whedon  for
       the  Debian  GNU/Linux system (but may be used by others).  Much of the
       information  was  gleaned  from  "PNG   (Portable   Network   Graphics)
       Specification, Version 1.2"