EnglishFrenchSpanish

OnWorks favicon

pngcrush - Online in the Cloud

Run pngcrush in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command pngcrush that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


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

SYNOPSIS


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

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

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

DESCRIPTION


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 :

http://www.libpng.org/pub/png/.

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 chunks.

OPTIONS


-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 way.

-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 exists.

-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 compression.

-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 speed.

-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" ).

-newtimestamp
Reset file modification time to newer time stamp. This is the default.

-oldtimestamp
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 matching

· 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.

Use pngcrush online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    subconverter
    subconverter
    Utility to convert between various
    subscription format. Shadowrocket users
    should use ss, ssr or v2ray as target.
    You can add &remark= to
    Telegram-liked HT...
    Download subconverter
  • 2
    SWASH
    SWASH
    SWASH is a general-purpose numerical
    tool for simulating unsteady,
    non-hydrostatic, free-surface,
    rotational flow and transport phenomena
    in coastal waters as ...
    Download SWASH
  • 3
    VBA-M (Archived - Now on Github)
    VBA-M (Archived - Now on Github)
    Project has moved to
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Features:Cheat creationsave statesmulti
    system, supports gba, gbc, gb, sgb,
    sgb2Tu...
    Download VBA-M (Archived - Now on Github)
  • 4
    Stacer
    Stacer
    Linux System Optimizer and Monitoring
    Github Repository:
    https://github.com/oguzhaninan/Stacer.
    Audience: End Users/Desktop. User
    interface: Qt. Programming La...
    Download Stacer
  • 5
    OrangeFox
    OrangeFox
    Fork of TeamWinRecoveryProject(TWRP)
    with many additional functions, redesign
    and more Features:Supports Treble and
    non-Treble ROMsUp-to-date Oreo kernel,
    built...
    Download OrangeFox
  • 6
    itop - ITSM  CMDB OpenSource
    itop - ITSM CMDB OpenSource
    IT Operations Portal: a complete open
    source, ITIL, web based service
    management tool including a fully
    customizable CMDB, a helpdesk system and
    a document man...
    Download itop - ITSM CMDB OpenSource
  • More »

Linux commands

Ad