housecleaning for 0.7.0 release

Add testing mention of CentOS, windows.
Skipping some tests on versions 1.3 and 1.4
Minor doc mods.
For whatever stupid reason, np.log2(x) cannot be relied upon to be an
integer when x is a power of 2 ON WIN32!!!  All hail win32!
Better error message if array-style slice other than [:]
This commit is contained in:
John Evans 2014-09-25 09:12:46 -04:00 • committed by jevans
commit 0e2aa4492c
15 changed files with 92 additions and 35 deletions

View file

@ -3,14 +3,15 @@ How do I...?
------------
... read the lower resolution images?
=====================================
Jp2k implements slicing via the :py:meth:`__getitem__` method so
any lower resolution images in a JPEG 2000 file can easily be
accessed, for example here's how to retrieve the first sub-image ::
... read images?
================
Jp2k implements slicing via the :py:meth:`__getitem__` method, meaning that
multiple resolution imagery in a JPEG 2000 file can
easily be accessed via array-style slicing. For example here's how to
retrieve a full resolution and first lower-resolution image ::
>>> import glymur
>>> jp2file = glymur.data.nemo()
>>> jp2file = glymur.data.nemo() # just a path to a JPEG2000 file
>>> jp2 = glymur.Jp2k(jp2file)
>>> fullres = jp2[:]
>>> print(fullres.shape)
@ -19,20 +20,34 @@ accessed, for example here's how to retrieve the first sub-image ::
>>> print(thumbnail.shape)
(728, 1296, 3)
The :py:meth:`read` method gives many more options for other JPEG 2000 features
such as quality layers.
The :py:meth:`read` method exposes many more options for other JPEG 2000
features such as quality layers.
... write images?
=================
So long as the image data can fit entirely into memory, array-style slicing may
also be used to write JPEG 2000 files.
>>> import glymur, numpy as np
>>> jp2 = glymur.Jp2k('zeros.jp2', mode='wb')
>>> jp2[:] = np.zeros((640, 480), dtype=np.uint8)
The :py:meth:`write` method exposes many more options for other JPEG 2000
features. You should have OpenJPEG version 1.5 or more recent before writing
JPEG 2000 images.
... display metadata?
=====================
There are two ways. From the command line, the script **jp2dump** is
There are two ways. From the command line, the console script **jp2dump** is
available. ::
$ jp2dump /path/to/glymur/installation/data/nemo.jp2
From within Python, it is as simple as printing the Jp2k object, i.e. ::
From within Python, the same result is obtained simply by printing the Jp2k
object, i.e. ::
>>> import glymur
>>> jp2file = glymur.data.nemo()
>>> jp2file = glymur.data.nemo() # just a path to a JP2 file
>>> jp2 = glymur.Jp2k(jp2file)
>>> print(jp2)
File: nemo.jp2
@ -326,10 +341,10 @@ is currently limited to XML and UUID boxes.
... create an image with an alpha layer?
========================================
OpenJPEG can create JP2 files with more than 3 components (requires
the development version of OpenJPEG), but by default, any extra components are
not described as such. In order to do so, we need to rewrap such
an image in a set of boxes that includes a channel definition box.
OpenJPEG can create JP2 files with more than 3 components (use version 2.1.0+
for this), but by default, any extra components are not described
as such. In order to do so, we need to rewrap such an image in a
set of boxes that includes a channel definition box.
This example is based on SciPy example code found at
http://scipy-lectures.github.io/advanced/image_processing/#basic-manipulations .
@ -387,7 +402,11 @@ Here's how the Preview application on the mac shows the RGBA image.
... work with XMP UUIDs?
========================
XMP is metadata on steroids.
`Wikipedia <http://en.wikipedia.org/wiki/Extensible_Metadata_Platform>`_ states
that "The Extensible Metadata Platform (XMP) is an ISO standard,
originally created by Adobe Systems Inc., for the creation, processing
and interchange of standardized and custom metadata for all kinds
of resources."
The example JP2 file shipped with glymur has an XMP UUID. ::