https://github.com/cgohlke/netpbmfile
Read and write Netpbm files.
https://github.com/cgohlke/netpbmfile
format-reader image netpbm python
Last synced: 11 months ago
JSON representation
Read and write Netpbm files.
- Host: GitHub
- URL: https://github.com/cgohlke/netpbmfile
- Owner: cgohlke
- License: bsd-3-clause
- Created: 2020-02-22T22:47:58.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-05-09T04:47:15.000Z (about 1 year ago)
- Last Synced: 2025-07-10T15:27:12.255Z (11 months ago)
- Topics: format-reader, image, netpbm, python
- Language: Python
- Homepage: https://pypi.org/project/netpbmfile
- Size: 192 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
- License: LICENSE
Awesome Lists containing this project
README
..
This file is generated by setup.py
Read and write Netpbm files
===========================
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: 2025.5.8
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):
- `CPython `_ 3.10.11, 3.11.9, 3.12.9, 3.13.2 64-bit
- `NumPy `_ 2.2.5
Revisions
---------
2025.5.8
- Remove doctest command line option.
2025.1.1
- Improve type hints.
- Drop support for Python 3.9, support Python 3.13.
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:
.. code-block:: python
>>> import numpy
>>> 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:
.. code-block:: python
>>> image = imread('_tmp.pgm')
>>> numpy.testing.assert_equal(image, data)
Access meta and image data in a Netpbm file:
.. code-block:: python
>>> 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