pngcrush
------------------------------------------

Optimize PNG image files

An optimizer for PNG (Portable Network Graphics) files. Its main
purpose is to reduce the size of the PNG IDAT data stream by trying
various compression levels and PNG filter methods. It also can be used
to remove unwanted ancillary chunks, or to add certain chunks
including gAMA, tRNS, and textual chunks.


Runtime requirements:
  None.

  New versions come libs included. Older versions required:
  libpng14
  zlib

Build requirements:
  None.

  New versions come libs included. Older versions required:
  libpng14-devel
  zlib-devel

Build requirements:
  cygwin

Canonical homepage:
  http://pmt.sourceforge.net/pngcrush
  http://packages.debian.org/pngcrush

Canonical download:
  http://sourceforge.net/projects/pmt

Version control repository:
   git clone git://pmt.git.sourceforge.net/gitroot/pmt/pmt
   git checkout pngcrush

Mailing list:

Forum / Wiki:

IRC channel:

Upstream contact:
  Author: Glenn Randers-Pehrson <glennrp@users.sf.net>
  Bugs: http://sourceforge.net/tracker/?atid=101689&group_id=1689&func=browse

License:
  Custom "license derived from the libpng"

  /*
   * pngcrush.c - recompresses png files
   * Copyright (C) 1998-2002,2006-2012 Glenn Randers-Pehrson
   *                                   (glennrp at users.sf.net)
   * Portions copyright (C) 2005      Greg Roelofs
   *
   * This software is released under a license derived from the libpng
   * license (see LICENSE, below).
   *
   * The most recent version of pngcrush can be found at SourceForge in
   * http://pmt.sf.net/pngcrush/
   *
   * This program reads in a PNG image, and writes it out again, with the
   * optimum filter_method and zlib_level.  It uses brute force (trying
   * filter_method none, and libpng adaptive filtering, with compression
   * levels 3 and 9).  It does the most time-consuming method last in case
   * it turns out to be the best.
   *
   * Optionally, it can remove unwanted chunks or add gAMA, sRGB, bKGD,
   * tEXt/zTXt, and tRNS chunks.  It will remove some chunks such as gAMA,
   * cHRM, pHYs, and oFFs when their data fields contain all zero, which is a
   * mistake.
   *
   * Uses libpng and zlib.  This program was based upon libpng's pngtest.c.
   * If using a "system" libpng and not the bundled libpng15 that comes
   * with pngcrush, this must at present be libpng14 or earlier.
   *
   * Thanks to Greg Roelofs for various bug fixes, suggestions, and
   * occasionally creating Linux executables.
   *
   * Thanks to Stephan Levavej for some helpful suggestions about gcc compiler
   * options and for a suggestion to increase the Z_MEM_LEVEL from default.
   *
   * Caution: there is another version of pngcrush that has been distributed by
   * Apple since mid-2008 as a part of the Xcode SDK.   Although it claims
   * to be pngcrush by Glenn Randers-Pehrson, it has additional options
   * "-iPhone" * and "-speed".  It writes files that have the PNG 8-byte signature
   * but are not valid PNG files, due to at least
   *
   *   o the presence of the CgBI chunk ahead of the IHDR chunk,
   *   o nonstandard deflate compression in IDAT, iCCP, and perhaps zTXt chunks,
   *   o the use of premultiplied alpha in color_type 6 files, and
   *   o the sample order is ARGB instead of RGBA in color_type 6 files.
   *
   * The original PNG file cannot be losslessly recovered from such files
   * because of the use of premultiplied alpha.
   *
   * Most PNG decoders will recognize the fact that an unknown critical
   * chunk "CgBI" is present and will immediately reject the file.
   *
   * It is said that the Xcode version of pngcrush is automatically applied
   * when PNG files are prepared for downloading to the iPhone unless the
   * user takes special measures to prevent it.
   *
   * I have not seen the source for the Xcode version of pngcrush.  All I
   * know, for now, is from running "strings -a" on a copy of the executable,
   * looking at two Xcode-PNG files, and reading Apple's patent application
   * <http://www.freepatentsonline.com/y2008/0177769.html>.
   *
   */

Language:
  C

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

Build instructions:
  unpack pngcrush-1.8.1+20160410+gitbaf49dc-1-src.tar.bz2
    if you use setup to install this src package, it will be
    unpacked under /usr/src automatically
  cd /usr/src
  ./pngcrush*.sh all

This will create:
  pngcrush-1.8.1+20160410+gitbaf49dc-1.tar.xz
  pngcrush-1.8.1+20160410+gitbaf49dc-1-src.tar.xz

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

Files included in the binary distribution:
  See Cygwin package archive

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

Port Notes:

----- version 1.8.1+20160410+gitbaf49dc-1 -----
- New upstream release 2016-06-08 Jari Aalto

----- version 1.7.83+20150129+gita490eeb-1 -----
- New upstream release 2015-02-13 Jari Aalto

----- version 1.7.72+20140315+gitde47033-1 -----
- New upstream release 2014-04-10 Jari Aalto

----- version 1.7.67+20130820+giteca9f84-1 -----
- New upstream release 2013-09-16 Jari Aalto

----- version 1.7.26+20130305+gitb6d8931-1 -----
- New upstream release 2013-03-05 Jari Aalto

----- version 1.7.26+20120223+gitb6d8931-1 -----
- New upstream release 2012-03-25 Jari Aalto

----- version 1.7.24.20120129+git33373b7-1 -----
- New upstream release 2012-01-29 Jari Aalto

----- version 1.6.7-1 -----
- New upstream release 2008-08-20
- Debian patches included

----- version 1.6.4-1 -----
- Initial release 2007-12-02 Jari Aalto
- No manual page. Copien one from Debian

Cygwin port maintained by: Jari Aalto <jari.aalto@cante.net>
Copyright (C) 2007-2016 Jari Aalto; Licenced under GPL v2 or later
