Skip to main content

Read and write Netpbm files

Project description

Netpbmfile is a Python library to read and write image files in the Netpbm or related formats:

  • PBM (Portable Bit Map): P1 (text) and P4 (binary)

  • PGM (Portable Gray Map): P2 (text) and P5 (binary)

  • PPM (Portable Pixel Map): P3 (text) and P6 (binary)

  • PNM (Portable Any Map): shorthand for PBM, PGM, and PPM collectively

  • PAM (Portable Arbitrary Map): P7, bilevel, gray, and rgb

  • PGX (Portable Graymap Signed): PG, signed grayscale

  • PFM (Portable Float Map): Pf (gray), PF (rgb), and PF4 (rgba), read-only

  • XV thumbnail: P7 332 (rgb332), read-only

The Netpbm formats are specified at https://netpbm.sourceforge.net/doc/.

The PGX format is specified in ITU-T Rec. T.803.

No gamma correction or scaling is performed.

Author:

Christoph Gohlke

License:

BSD 3-Clause

Version:

2024.5.24

Quickstart

Install the netpbmfile package and all dependencies from the Python Package Index:

python -m pip install -U "netpbmfile[all]"

See Examples for using the programming interface.

Source code and support are available on GitHub.

Requirements

This revision was tested with the following requirements and dependencies (other versions may work):

Revisions

2024.5.24

  • Fix docstring examples not correctly rendered on GitHub.

2024.4.24

  • Support NumPy 2.

2023.8.30

  • Fix linting issues.

  • Add py.typed marker.

2023.6.15

  • Drop support for Python 3.8 and numpy < 1.21 (NEP29).

  • Improve type hints.

2023.1.1

  • Several breaking changes:

  • Rename magicnum to magicnumber (breaking).

  • Rename tupltypes to tupltype (breaking).

  • Change magicnumber and header properties to str (breaking).

  • Replace pam parameter with magicnumber (breaking).

  • Move byteorder parameter from NetpbmFile.asarray to NetpbmFile (breaking).

  • Fix shape and axes properties for multi-image files.

  • Add maxval and tupltype parameters to NetpbmFile.fromdata and imwrite.

  • Add option to write comment to PNM and PAM files.

  • Support writing PGX and text formats.

  • Add Google style docstrings.

  • Add unittests.

2022.10.25

Refer to the CHANGES file for older revisions.

Examples

Write a numpy array to a Netpbm file in grayscale binary format:

>>> data = numpy.array([[0, 1], [65534, 65535]], dtype=numpy.uint16)
>>> imwrite('_tmp.pgm', data)

Read the image data from a Netpbm file as numpy array:

>>> image = imread('_tmp.pgm')
>>> numpy.testing.assert_equal(image, data)

Access meta and image data in a Netpbm file:

>>> with NetpbmFile('_tmp.pgm') as pgm:
...     pgm.magicnumber
...     pgm.axes
...     pgm.shape
...     pgm.dtype
...     pgm.maxval
...     pgm.asarray().tolist()
...
'P5'
'YX'
(2, 2)
dtype('>u2')
65535
[[0, 1], [65534, 65535]]

View the image and metadata in the Netpbm file from the command line:

$ python -m netpbmfile _tmp.pgm

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netpbmfile-2024.5.24.tar.gz (29.4 kB view details)

Uploaded Source

Built Distribution

netpbmfile-2024.5.24-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file netpbmfile-2024.5.24.tar.gz.

File metadata

  • Download URL: netpbmfile-2024.5.24.tar.gz
  • Upload date:
  • Size: 29.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for netpbmfile-2024.5.24.tar.gz
Algorithm Hash digest
SHA256 b1458edd5a5e6ceb7637c14dabb45df5cd907e41b6e4499e39811712ce105137
MD5 9419f11e34c54d5eeb95451746b12ea6
BLAKE2b-256 7cd17ac16fe92facce5baa37a771a6e95938beb6bd1bc60055e0f18df2d13f07

See more details on using hashes here.

File details

Details for the file netpbmfile-2024.5.24-py3-none-any.whl.

File metadata

File hashes

Hashes for netpbmfile-2024.5.24-py3-none-any.whl
Algorithm Hash digest
SHA256 da2e8a47d83066ab5cdeb95ffb9b5564acbccfcf2b1a92639e1043a544ed4891
MD5 6593f53a02a0faf5d60e028f8fea2335
BLAKE2b-256 ac7a2530d0bf931e93164e41cf16e2e8904939d36b767f5ab2d59ac1dfbaa249

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page