Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
oxipng(1)		    General Commands Manual		     oxipng(1)

NAME
       oxipng -	Losslessly improve compression of PNG files

SYNOPSIS
       oxipng	[-o|--opt]   [-r|--recursive]	[--dir]	  [--out]   [--stdout]
       [-p|--preserve] [-d|--dry-run] [-s ]  [--strip]	[--keep]  [-a|--alpha]
       [-i|--interlace]	 [--scale16] [-v|--verbose]... [-q|--quiet] [-f|--fil-
       ters] [--fast] [--zc] [--nb] [--nc] [--np] [--ng] [--nx]	[--nz] [--fix]
       [--force] [-z|--zopfli] [--zi] [--ziwi] [--brute-level] [--brute-lines]
       [--timeout] [--max-raw-size] [-t|--threads] [--sequential]  [-h|--help]
       [-V|--version] <files>

DESCRIPTION
       Losslessly improve compression of PNG files

OPTIONS
       -o, --opt <level> [default: 2]
	      Set  the optimization level preset. The default level 2 is quite
	      fast and provides	good compression.  Lower  levels  are  faster,
	      higher  levels  provide better compression, though with increas-
	      ingly diminishing	returns.

		  0   => --zc 5	 --fast		     (filter chosen  heuristi-
	      cally)
		  1    => --zc 10 --fast	      (filter chosen heuristi-
	      cally)
		  2   => --zc 11 -f 0,1,6,7 --fast
		  3    =>  --zc	 11   -f   0,7,8,9	     --brute-level   1
	      --brute-lines 3
		  4	=>   --zc   12	 -f  0,7,8,9	      --brute-level  1
	      --brute-lines 4
		  5    =>  --zc	 12   -f   0,1,2,5,6,7,8,9   --brute-level   4
	      --brute-lines 4
		  6	=>   --zc   12	 -f  0-9	      --brute-level  5
	      --brute-lines 8
		  max => (stable alias for the maximum level)

	      Manually specifying a compression	 option	 (zc,  f,  etc.)  will
	      override	the  optimization  preset, regardless of the order you
	      write the	arguments.

       -r, --recursive
	      When directories are given  as  input,  traverse	the  directory
	      trees and	optimize all PNG files found (files with .png or .apng
	      extension).

       --dir <directory>
	      Write  output  file(s) to	<directory>. If	the directory does not
	      exist, it	will be	created. Note that this	will not preserve  the
	      directory	 structure of the input	files when used	with '--recur-
	      sive'.

       --out <file>
	      Write output file	to <file>

       --stdout
	      Write output to stdout

       -p, --preserve
	      Preserve file permissions	and timestamps if possible

       -d, --dry-run
	      Do not write any files, only show	compression results

       -s     Strip safely-removable chunks, same as '--strip safe'

       --strip <mode>
	      Strip metadata chunks, where <mode> is one of:

		  safe	  =>  Strip all	non-critical chunks,  except  for  the
	      following:
				  cICP,	iCCP, sRGB, pHYs, acTL,	fcTL, fdAT
		  all	  =>  Strip all	non-critical chunks
		  <list>   =>	Strip chunks in	the comma-separated list, e.g.
	      'bKGD,cHRM'

	      CAUTION: 'all' will convert APNGs	to standard PNGs.

	      Please note that regardless of any options set, some chunks will
	      necessarily be stripped when invalidated by the optimization:
		  bKGD,	sBIT, hIST: Stripped if	the color type	or  bit	 depth
	      changes.
		  iDOT:	Always stripped.
		  caBX:	 Stripped  if it contains C2PA metadata. If explicitly
	      retained by `--keep`, optimization will be aborted.

	      The default when --strip is not passed is	 to  keep  all	chunks
	      that remain valid.

       --keep <list>
	      Strip  all  metadata  chunks except those	in the comma-separated
	      list. The	special	value 'display'	includes  chunks  that	affect
	      the image	appearance, equivalent to '--strip safe'.

	      E.g.  '--keep eXIf,display' will strip chunks, keeping only eXIf
	      and those	that affect the	image appearance.

       -a, --alpha
	      Perform additional optimization on images	with an	alpha channel,
	      by altering the color values of fully transparent	 pixels.  This
	      is  generally  recommended for better compression, but take care
	      as while this is visually	lossless, it is	 technically  a	 lossy
	      transformation and may be	unsuitable for some applications.

       -i, --interlace <mode> [default:	off]
	      Set the PNG interlacing mode, where <mode> is one	of:

		  off	 =>   Remove  interlacing  from	 all  images  that are
	      processed
		  on	=>  Apply Adam7	interlacing on	all  images  that  are
	      processed
		  keep	=>  Keep the existing interlacing mode of each image

	      Note that	interlacing can	add 25-50% to the size of an optimized
	      image.  Only  use	 it  if	 you believe the benefits outweigh the
	      costs for	your use case.

       --scale16
	      Forcibly reduce images with 16 bits per channel to  8  bits  per
	      channel.	This  is a lossy operation but can provide significant
	      savings when you have no need for	 higher	 depth.	 Reduction  is
	      performed	 by  scaling  the values such that, e.g. 0x00FF	is re-
	      duced to 0x01 rather than	0x00.

	      Without this flag, 16-bit	images will only be reduced  in	 depth
	      if it can	be done	losslessly.

       -v, --verbose
	      Run in verbose mode (use twice to	increase verbosity)

       -q, --quiet
	      Run in quiet mode

       -f, --filters <list>
	      Perform  compression trials with each of the given filter	types.
	      You can specify a	comma-separated	list, or a  range  of  values.
	      E.g. '-f 0-3' is the same	as '-f 0,1,2,3'.

	      PNG delta	filters	(apply the same	filter to every	line)
		  0  =>	 None	   (recommended	to always include this filter)
		  1  =>	 Sub
		  2  =>	 Up
		  3  =>	 Average
		  4  =>	 Paeth

	      Heuristic	strategies (try	to find	the best delta filter for each
	      line)
		  5  =>	 MinSum	   Minimum sum of absolute differences
		  6  =>	 Entropy   Smallest Shannon entropy
		  7  =>	 Bigrams   Lowest count	of distinct bigrams
		  8  =>	 BigEnt	   Smallest Shannon entropy of bigrams
		  9  =>	 Brute	   Smallest compressed size (slow)

	      The default value	depends	on the optimization level preset.

       --fast Perform  a  fast	compression evaluation of each enabled filter,
	      followed by a single main	compression trial of the best  result.
	      Recommended if you have more filters enabled than	CPU cores.

       --zc <level>
	      Deflate  compression  level  (0-12) for main compression trials.
	      The levels here are defined by the  libdeflate  compression  li-
	      brary.

	      The default value	depends	on the optimization level preset.

       --nb   Do not change bit	depth

       --nc   Do not change color type

       --np   Do not change color palette

       --ng   Do not change to or from grayscale

       --nx   Do not perform any transformations and do	not deinterlace	by de-
	      fault.

       --nz   Do  not  recompress IDAT unless required due to transformations.
	      Recompression of other compressed	chunks	(such  as  iCCP)  will
	      also be disabled.	Note that the combination of '--nx' and	'--nz'
	      will fully disable all optimization.

       --fix  Do not perform checksum validation of PNG	chunks.	This may allow
	      some  files with errors to be processed successfully. The	output
	      will always have correct checksums.

       --force
	      Write the	output even if it is larger than the input

       -z, --zopfli
	      Use the much slower but stronger Zopfli compressor for main com-
	      pression trials. Recommended use is with '-o max'	and '--fast'.

       --zi <iterations> [default: 15]
	      Set the number of	iterations to use for Zopfli compression.  Us-
	      ing  fewer  iterations may speed up compression for large	files.
	      This option requires '--zopfli' to be set.

       --ziwi <iterations>
	      Stop Zopfli compression after this number	of iterations  without
	      improvement.  Use	 this  in  conjunction	with  a	high value for
	      '--zi' to	achieve	better compression in reasonable time.

       --brute-level <level>
	      Set the libdeflate compression level to use with the Brute  fil-
	      ter  strategy. Sane values are 1-5. Higher values	are not	neces-
	      sarily better.

       --brute-lines <lines>
	      Set the number of	lines to compress at once with the Brute  fil-
	      ter strategy. Sane values	are 2-16. Higher values	are not	neces-
	      sarily better.

       --timeout <secs>
	      Maximum  amount  of time,	in seconds, to spend on	optimizations.
	      Oxipng will check	the timeout before each	transformation or com-
	      pression trial, and will stop trying to optimize the file	if the
	      timeout is exceeded. Note	that this does not cut short any oper-
	      ations that are already in progress, so it is currently of  lim-
	      ited effectiveness for large files with high compression levels.

       --max-raw-size <bytes>
	      Maximum  size  to	 allow for the input image. If the raw,	decom-
	      pressed image data (or the file size) of the image exceeds  this
	      size, it will be skipped.	This is	useful for limiting memory us-
	      age or avoiding long processing times on large images. The value
	      may be specified with a unit suffix such as k, KB, m, MB,	etc.

	      The  decompressed	 size  of an image is roughly equal to width *
	      height * bit-depth / 8. E.g. a 1920x1080 image with 24-bit color
	      depth would be roughly 6MB.

       -t, --threads <num>
	      Set the maximum number of	threads	to  use.  Oxipng  uses	multi-
	      threading	to evaluate multiple optimizations on the same file in
	      parallel	as well	as process multiple files in parallel. You can
	      set this to a lower value	if you need to limit memory or CPU us-
	      age.

	      [default:	num logical CPUs]

       --sequential
	      Process multiple files sequentially rather than in parallel. Use
	      this if you need determinism in the processing order. Note  this
	      is not necessary if using	'--threads 1'.

       -h, --help
	      Print help (see a	summary	with '-h')

       -V, --version
	      Print version

       <files>
	      File(s) to compress (use '-' for stdin)

VERSION
       v0.1.0

AUTHORS
       Joshua Holmer <jholmer.in@gmail.com>

				 oxipng	0.1.0			     oxipng(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=oxipng&sektion=1&manpath=FreeBSD+Ports+15.0.quarterly>

home | help