Removed consideration of openjpeg versions 1.3 and 1.4. #159
This commit is contained in:
parent
735d3afff6
commit
d098dd5d5e
7 changed files with 4 additions and 43 deletions
|
|
@ -9,6 +9,7 @@ ChangeLog
|
||||||
* Added lxml requirement.
|
* Added lxml requirement.
|
||||||
* added set_printoptions, get_printoptions function
|
* added set_printoptions, get_printoptions function
|
||||||
* dropped support for Python 2.6, added support for Python 3.4
|
* dropped support for Python 2.6, added support for Python 3.4
|
||||||
|
* dropped support for OpenJPEG versions 1.3 and 1.4
|
||||||
* dropped windows support (it might work, it might not, I don't much care)
|
* dropped windows support (it might work, it might not, I don't much care)
|
||||||
* added write support for JP2 UUID, dataEntryURL, palette, and component mapping boxes
|
* added write support for JP2 UUID, dataEntryURL, palette, and component mapping boxes
|
||||||
* added read/write support for JPX free, number list, and data reference boxes
|
* added read/write support for JPX free, number list, and data reference boxes
|
||||||
|
|
|
||||||
|
|
@ -14,17 +14,7 @@ XMP UUIDs. There is some very limited support for reading JPX metadata.
|
||||||
Glymur 0.6 works on Python versions 2.7, 3.3 and 3.4. If you have Python 2.6,
|
Glymur 0.6 works on Python versions 2.7, 3.3 and 3.4. If you have Python 2.6,
|
||||||
you should use the 0.5 series of Glymur.
|
you should use the 0.5 series of Glymur.
|
||||||
|
|
||||||
OpenJPEG Installation
|
For more information about OpenJPEG, please consult http://www.openjpeg.org.
|
||||||
=====================
|
|
||||||
Glymur will read JPEG 2000 images with versions 1.3, 1.4, 1.5, 2.0,
|
|
||||||
and the trunk/development version of OpenJPEG. Writing images is
|
|
||||||
only supported with the 1.5 or better, however, and the trunk/development
|
|
||||||
version of OpenJPEG is strongly recommended. For more information about
|
|
||||||
OpenJPEG, please consult http://www.openjpeg.org.
|
|
||||||
|
|
||||||
If you use MacPorts or if you have a sufficiently recent version of
|
|
||||||
Linux, your package manager should already provide you with a version of
|
|
||||||
OpenJPEG 1.X which glymur can already use.
|
|
||||||
|
|
||||||
Glymur Installation
|
Glymur Installation
|
||||||
===================
|
===================
|
||||||
|
|
|
||||||
|
|
@ -772,19 +772,6 @@ class Jp2k(Jp2kBox):
|
||||||
"""
|
"""
|
||||||
self._subsampling_sanity_check()
|
self._subsampling_sanity_check()
|
||||||
|
|
||||||
if rlevel != 0:
|
|
||||||
# Must check the specified rlevel against the maximum.
|
|
||||||
# OpenJPEG 1.3 will segfault if rlevel is too high.
|
|
||||||
codestream = self.get_codestream()
|
|
||||||
max_rlevel = codestream.segment[2].spcod[4]
|
|
||||||
if rlevel == -1:
|
|
||||||
# -1 is shorthand for the largest rlevel
|
|
||||||
rlevel = max_rlevel
|
|
||||||
if rlevel < -1 or rlevel > max_rlevel:
|
|
||||||
msg = "rlevel must be in the range [-1, {0}] for this image."
|
|
||||||
msg = msg.format(max_rlevel)
|
|
||||||
raise IOError(msg)
|
|
||||||
|
|
||||||
with ExitStack() as stack:
|
with ExitStack() as stack:
|
||||||
try:
|
try:
|
||||||
# Set decoding parameters.
|
# Set decoding parameters.
|
||||||
|
|
|
||||||
|
|
@ -386,15 +386,9 @@ class TestJp2k(unittest.TestCase):
|
||||||
# The file in question has multiple codestreams.
|
# The file in question has multiple codestreams.
|
||||||
jpx = Jp2k(self.jpxfile)
|
jpx = Jp2k(self.jpxfile)
|
||||||
data = jpx.read()
|
data = jpx.read()
|
||||||
if re.match(r"""1\.[0123]""", glymur.version.openjpeg_version):
|
self.assertEqual(data.shape, (1024, 1024, 3))
|
||||||
# openjpeg 1.3 doesn't apply the palette, so it's a 2D image here
|
|
||||||
self.assertEqual(data.shape, (1024, 1024))
|
|
||||||
else:
|
|
||||||
self.assertEqual(data.shape, (1024, 1024, 3))
|
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipIf(re.match(r"""1\.[01234]""", glymur.version.openjpeg_version),
|
|
||||||
"Requires at least version 1.5")
|
|
||||||
class TestJp2k_write(unittest.TestCase):
|
class TestJp2k_write(unittest.TestCase):
|
||||||
"""Write tests, can be run by versions 1.5+"""
|
"""Write tests, can be run by versions 1.5+"""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -381,11 +381,7 @@ class TestSuite(unittest.TestCase):
|
||||||
jfile = opj_data_file('input/conformance/file9.jp2')
|
jfile = opj_data_file('input/conformance/file9.jp2')
|
||||||
jp2k = Jp2k(jfile)
|
jp2k = Jp2k(jfile)
|
||||||
jpdata = jp2k.read()
|
jpdata = jp2k.read()
|
||||||
if re.match(r"""1\.3""", glymur.version.openjpeg_version):
|
self.assertEqual(jpdata.shape, (512, 768, 3))
|
||||||
# Version 1.3 reads the indexed image as indices, not as RGB.
|
|
||||||
self.assertEqual(jpdata.shape, (512, 768))
|
|
||||||
else:
|
|
||||||
self.assertEqual(jpdata.shape, (512, 768, 3))
|
|
||||||
|
|
||||||
def test_NR_DEC_Bretagne2_j2k_1_decode(self):
|
def test_NR_DEC_Bretagne2_j2k_1_decode(self):
|
||||||
jfile = opj_data_file('input/nonregression/Bretagne2.j2k')
|
jfile = opj_data_file('input/nonregression/Bretagne2.j2k')
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,6 @@ from glymur import Jp2k
|
||||||
import glymur
|
import glymur
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipIf(re.match(r"""1\.[01234]""", glymur.version.openjpeg_version),
|
|
||||||
"Functionality not implemented for 1.3, 1.4")
|
|
||||||
@unittest.skipIf(OPJ_DATA_ROOT is None,
|
@unittest.skipIf(OPJ_DATA_ROOT is None,
|
||||||
"OPJ_OPJ_DATA_ROOT environment variable not set")
|
"OPJ_OPJ_DATA_ROOT environment variable not set")
|
||||||
class TestSuiteNegative2pointzero(unittest.TestCase):
|
class TestSuiteNegative2pointzero(unittest.TestCase):
|
||||||
|
|
@ -48,8 +46,6 @@ class TestSuiteNegative2pointzero(unittest.TestCase):
|
||||||
j.write(data, psnr=[30, 35, 40], cratios=[2, 3, 4])
|
j.write(data, psnr=[30, 35, 40], cratios=[2, 3, 4])
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipIf(re.match(r"""1\.[01234]""", glymur.version.openjpeg_version),
|
|
||||||
"Functionality not implemented for 1.3, 1.4")
|
|
||||||
@unittest.skipIf(OPJ_DATA_ROOT is None,
|
@unittest.skipIf(OPJ_DATA_ROOT is None,
|
||||||
"OPJ_OPJ_DATA_ROOT environment variable not set")
|
"OPJ_OPJ_DATA_ROOT environment variable not set")
|
||||||
class TestSuiteNegative(unittest.TestCase):
|
class TestSuiteNegative(unittest.TestCase):
|
||||||
|
|
|
||||||
|
|
@ -249,9 +249,6 @@ class TestSuiteNegative2pointzero(unittest.TestCase):
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipIf(os.name == "nt", "no write support on windows, period")
|
@unittest.skipIf(os.name == "nt", "no write support on windows, period")
|
||||||
@unittest.skipIf(re.match(r"""1\.[01234]\.\d""",
|
|
||||||
glymur.version.openjpeg_version) is not None,
|
|
||||||
"Writing only supported with openjpeg version 1.5+.")
|
|
||||||
@unittest.skipIf(NO_READ_BACKEND, NO_READ_BACKEND_MSG)
|
@unittest.skipIf(NO_READ_BACKEND, NO_READ_BACKEND_MSG)
|
||||||
@unittest.skipIf(OPJ_DATA_ROOT is None,
|
@unittest.skipIf(OPJ_DATA_ROOT is None,
|
||||||
"OPJ_DATA_ROOT environment variable not set")
|
"OPJ_DATA_ROOT environment variable not set")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue