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] [-j|--json]
       [-f|--filters]  [--fast]	 [--zc]	 [--nb]	 [--nc]	 [--np]	 [--ng]	[--nx]
       [--nz] [--fix] [--force]	[-z|--zopfli] [--zi] [--ziwi]  [--brute-level]
       [--brute-lines]	[--timeout] [--max-raw-size] [-t|--threads] [--sequen-
       tial] [-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
	      Show per-file info (use multiple times for more detail)

       -q, --quiet
	      Suppress all output messages

       -j, --json
	      Print results as JSON

       -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.1.quarterly>

home | help