pngj


PNGJ: Java library for reading and writing PNG images

PNGJ

Pure Java library for efficient decoding/encoding of PNG images

Downloads: You can download the latest release from here http://hjg.com.ar/pngj/ or use the Maven Central repository


THIS PROJECT IS BEING MIGRATED TO GITHUB:

https://github.com/leonbloy/pngj/


Main features

  • Very efficient in memory usage and speed.
  • Pure Java (requires 5 or greater).
  • Small and self contained. No dependencies on third party libraries, nor even on java.awt.* /javax.imageio.*
  • Runs on GAE (Google App Engine) and Android
  • Allows to read/write progressively, row by row. This means that you can process huge images without needing to load them fully in memory.
  • Reads and writes all PNG color models (true color, gray, palette, all bit depths: 1-2-4-8-16, with-without alpha). Interlaced PNG is supported (though not welcomed) for reading.
  • Full support for metadata ("chunks") handling.
  • The format of the pixel data (read and write) is extensible (since 2.0) and very efficient (no double copies).
  • Supports (since 2.0) asyncronous reading and low level tweaking and extension in the reader.
  • Open source (Apache licence). Available in Maven Central repository.

Note that this is a relatively low-level library. It does not provide any high-level image processing (eg, resizing, colour conversions), nor tries to abstract the concrete image format (as BufferedImage does, for example). In particular, the default format of the scanlines (as wrapped in ImageLineInt or ImageLineByte) is not abstract, the meaning of the values depends on the image color model and bitdepth.

More info


C# port: http://code.google.com/p/pngcs


Questions, comments? Comment here

To keep updated of new releases and news: feeds

Project Information

Labels:
java png images graphic library api image