pylint work, wraps up much of jp2k module. #71

This commit is contained in:
John Evans 2013-07-09 08:16:37 -04:00
commit bb705db461
7 changed files with 195 additions and 187 deletions

View file

@ -6,13 +6,13 @@ How do I...?
Read the lowest resolution thumbnail? Read the lowest resolution thumbnail?
===================================== =====================================
Printing the Jp2k object should reveal the number of resolutions (look in the Printing the Jp2k object should reveal the number of resolutions (look in the
COD segment section), but you can take a shortcut by supplying -1 as the reduce COD segment section), but you can take a shortcut by supplying -1 as the
level. :: resolution level. ::
>>> import glymur >>> import glymur
>>> file = glymur.data.nemo() >>> file = glymur.data.nemo()
>>> j = glymur.Jp2k(file) >>> j = glymur.Jp2k(file)
>>> thumbnail = j.read(reduce=-1) >>> thumbnail = j.read(rlevel=-1)
Display metadata? Display metadata?
================= =================

View file

@ -44,22 +44,25 @@ _CMPFUNC = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_char_p, ctypes.c_void_p)
def _default_error_handler(msg, _): def _default_error_handler(msg, _):
"""Default error handler callback for openjpeg library."""
msg = "OpenJPEG library error: {0}".format(msg.decode('utf-8').rstrip()) msg = "OpenJPEG library error: {0}".format(msg.decode('utf-8').rstrip())
_opj2.set_error_message(msg) _opj2.set_error_message(msg)
def _default_info_handler(msg, _): def _default_info_handler(msg, _):
"""Default info handler callback for openjpeg library."""
print("[INFO] {0}".format(msg.decode('utf-8').rstrip())) print("[INFO] {0}".format(msg.decode('utf-8').rstrip()))
def _default_warning_handler(library_msg, _): def _default_warning_handler(library_msg, _):
"""Default warning handler callback for openjpeg library."""
library_msg = library_msg.decode('utf-8').rstrip() library_msg = library_msg.decode('utf-8').rstrip()
msg = "OpenJPEG library warning: {0}".format(library_msg) msg = "OpenJPEG library warning: {0}".format(library_msg)
warnings.warn(msg) warnings.warn(msg)
_error_callback = _CMPFUNC(_default_error_handler) _ERROR_CALLBACK = _CMPFUNC(_default_error_handler)
_info_callback = _CMPFUNC(_default_info_handler) _INFO_CALLBACK = _CMPFUNC(_default_info_handler)
_warning_callback = _CMPFUNC(_default_warning_handler) _WARNING_CALLBACK = _CMPFUNC(_default_warning_handler)
class Jp2k(Jp2kBox): class Jp2k(Jp2kBox):
@ -86,10 +89,12 @@ class Jp2k(Jp2kBox):
mode : str, optional mode : str, optional
The mode used to open the file. The mode used to open the file.
""" """
Jp2kBox.__init__(self)
self.filename = filename self.filename = filename
self.mode = mode self.mode = mode
self.box = [] self.box = []
self.offset = 0 self._codec_format = None
self._file_size = 0
# Parse the file for JP2/JPX contents only if we are reading it. # Parse the file for JP2/JPX contents only if we are reading it.
if mode == 'rb': if mode == 'rb':
@ -117,11 +122,11 @@ class Jp2k(Jp2kBox):
self.length = stat.st_size self.length = stat.st_size
self._file_size = stat.st_size self._file_size = stat.st_size
with open(self.filename, 'rb') as f: with open(self.filename, 'rb') as fptr:
# Make sure we have a JPEG2000 file. It could be either JP2 or # Make sure we have a JPEG2000 file. It could be either JP2 or
# J2C. Check for J2C first, single box in that case. # J2C. Check for J2C first, single box in that case.
read_buffer = f.read(2) read_buffer = fptr.read(2)
signature, = struct.unpack('>H', read_buffer) signature, = struct.unpack('>H', read_buffer)
if signature == 0xff4f: if signature == 0xff4f:
self._codec_format = _opj2.CODEC_J2K self._codec_format = _opj2.CODEC_J2K
@ -135,21 +140,23 @@ class Jp2k(Jp2kBox):
# First 4 bytes should be 12, the length of the 'jP ' box. # First 4 bytes should be 12, the length of the 'jP ' box.
# 2nd 4 bytes should be the box ID ('jP '). # 2nd 4 bytes should be the box ID ('jP ').
# 3rd 4 bytes should be the box signature (13, 10, 135, 10). # 3rd 4 bytes should be the box signature (13, 10, 135, 10).
f.seek(0) fptr.seek(0)
read_buffer = f.read(12) read_buffer = fptr.read(12)
values = struct.unpack('>I4s4B', read_buffer) values = struct.unpack('>I4s4B', read_buffer)
L = values[0] box_length = values[0]
T = values[1] box_id = values[1]
signature = values[2:] signature = values[2:]
if L != 12 or T != b'jP ' or signature != (13, 10, 135, 10): if ((box_length != 12) or (box_id != b'jP ') or
(signature != (13, 10, 135, 10))):
msg = '{0} is not a JPEG 2000 file.'.format(self.filename) msg = '{0} is not a JPEG 2000 file.'.format(self.filename)
raise IOError(msg) raise IOError(msg)
# Back up and start again, we know we have a superbox (box of # Back up and start again, we know we have a superbox (box of
# boxes) here. # boxes) here.
f.seek(0) fptr.seek(0)
self.box = self.parse_superbox(f) self.box = self.parse_superbox(fptr)
# pylint: disable-msg=W0221
def write(self, img_array, cratios=None, eph=False, psnr=None, numres=None, def write(self, img_array, cratios=None, eph=False, psnr=None, numres=None,
cbsize=None, psizes=None, grid_offset=None, sop=False, cbsize=None, psizes=None, grid_offset=None, sop=False,
subsam=None, tilesize=None, prog=None, modesw=None, subsam=None, tilesize=None, prog=None, modesw=None,
@ -214,7 +221,7 @@ class Jp2k(Jp2kBox):
>>> import glymur >>> import glymur
>>> jfile = glymur.data.nemo() >>> jfile = glymur.data.nemo()
>>> jp2 = glymur.Jp2k(jfile) >>> jp2 = glymur.Jp2k(jfile)
>>> data = jp2.read(reduce=1) >>> data = jp2.read(rlevel=1)
>>> from tempfile import NamedTemporaryFile >>> from tempfile import NamedTemporaryFile
>>> tfile = NamedTemporaryFile(suffix='.jp2', delete=False) >>> tfile = NamedTemporaryFile(suffix='.jp2', delete=False)
>>> j = Jp2k(tfile.name, mode='wb') >>> j = Jp2k(tfile.name, mode='wb')
@ -224,8 +231,8 @@ class Jp2k(Jp2kBox):
cparams = _opj2.set_default_encoder_parameters() cparams = _opj2.set_default_encoder_parameters()
outfile = self.filename.encode() outfile = self.filename.encode()
n = _opj2.PATH_LEN - len(outfile) num_pad_bytes = _opj2.PATH_LEN - len(outfile)
outfile += b'0' * n outfile += b'0' * num_pad_bytes
cparams.outfile = outfile cparams.outfile = outfile
if self.filename[-4:].lower() == '.jp2': if self.filename[-4:].lower() == '.jp2':
@ -241,19 +248,19 @@ class Jp2k(Jp2kBox):
cparams.cp_disto_alloc = 1 cparams.cp_disto_alloc = 1
if cbsize is not None: if cbsize is not None:
w = cbsize[1] width = cbsize[1]
h = cbsize[0] height = cbsize[0]
if h * w > 4096 or h < 4 or w < 4: if height * width > 4096 or height < 4 or width < 4:
msg = "Code block area cannot exceed 4096. " msg = "Code block area cannot exceed 4096. "
msg += "Code block height and width must be larger than 4." msg += "Code block height and width must be larger than 4."
raise RuntimeError(msg) raise RuntimeError(msg)
if ((math.log(h, 2) != math.floor(math.log(h, 2)) or if ((math.log(height, 2) != math.floor(math.log(height, 2)) or
math.log(w, 2) != math.floor(math.log(w, 2)))): math.log(width, 2) != math.floor(math.log(width, 2)))):
msg = "Bad code block size ({0}, {1}), " msg = "Bad code block size ({0}, {1}), "
msg += "must be powers of 2." msg += "must be powers of 2."
raise IOError(msg.format(h, w)) raise IOError(msg.format(height, width))
cparams.cblockw_init = w cparams.cblockw_init = width
cparams.cblockh_init = h cparams.cblockh_init = height
if cratios is not None: if cratios is not None:
cparams.tcp_numlayers = len(cratios) cparams.tcp_numlayers = len(cratios)
@ -269,9 +276,10 @@ class Jp2k(Jp2kBox):
cparams.image_offset_y0 = grid_offset[0] cparams.image_offset_y0 = grid_offset[0]
if modesw is not None: if modesw is not None:
for x in range(6): for shift in range(6):
if modesw & (1 << x): power_of_two = 1 << shift
cparams.mode |= (1 << x) if modesw & power_of_two:
cparams.mode |= power_of_two
if numres is not None: if numres is not None:
cparams.numresolution = numres cparams.numresolution = numres
@ -402,12 +410,12 @@ class Jp2k(Jp2kBox):
codec = _opj2.create_compress(codec_fmt) codec = _opj2.create_compress(codec_fmt)
if verbose: if verbose:
_opj2.set_info_handler(codec, _info_callback) _opj2.set_info_handler(codec, _INFO_CALLBACK)
else: else:
_opj2.set_info_handler(codec, None) _opj2.set_info_handler(codec, None)
_opj2.set_warning_handler(codec, _warning_callback) _opj2.set_warning_handler(codec, _WARNING_CALLBACK)
_opj2.set_error_handler(codec, _error_callback) _opj2.set_error_handler(codec, _ERROR_CALLBACK)
_opj2.setup_encoder(codec, cparams, image) _opj2.setup_encoder(codec, cparams, image)
strm = _opj2.stream_create_default_file_stream_v3(self.filename, False) strm = _opj2.stream_create_default_file_stream_v3(self.filename, False)
_opj2.start_compress(codec, image, strm) _opj2.start_compress(codec, image, strm)
@ -559,8 +567,8 @@ class Jp2k(Jp2kBox):
Parameters Parameters
---------- ----------
reduce : int, optional rlevel : int, optional
Factor by which to reduce output resolution. Use -1 to get the Factor by which to rlevel output resolution. Use -1 to get the
lowest resolution thumbnail. This is the only keyword option lowest resolution thumbnail. This is the only keyword option
available to use when only OpenJPEG version 1.5.1 is present. available to use when only OpenJPEG version 1.5.1 is present.
layer : int, optional layer : int, optional
@ -594,7 +602,7 @@ class Jp2k(Jp2kBox):
Read the lowest resolution thumbnail. Read the lowest resolution thumbnail.
>>> thumbnail = jp.read(reduce=-1) >>> thumbnail = jp.read(rlevel=-1)
>>> thumbnail.shape >>> thumbnail.shape
(728, 1296, 3) (728, 1296, 3)
""" """
@ -604,13 +612,13 @@ class Jp2k(Jp2kBox):
img = self._read_openjpeg(**kwargs) img = self._read_openjpeg(**kwargs)
return img return img
def _read_openjpeg(self, reduce=0, verbose=False): def _read_openjpeg(self, rlevel=0, verbose=False):
"""Read a JPEG 2000 image using libopenjpeg. """Read a JPEG 2000 image using libopenjpeg.
Parameters Parameters
---------- ----------
reduce : int, optional rlevel : int, optional
Factor by which to reduce output resolution. Use -1 to get the Factor by which to rlevel output resolution. Use -1 to get the
lowest resolution thumbnail. lowest resolution thumbnail.
verbose : bool, optional verbose : bool, optional
Print informational messages produced by the OpenJPEG library. Print informational messages produced by the OpenJPEG library.
@ -640,7 +648,7 @@ class Jp2k(Jp2kBox):
# Set decoding parameters. # Set decoding parameters.
dparameters = _opj.dparameters_t() dparameters = _opj.dparameters_t()
_opj.set_default_decoder_parameters(ctypes.byref(dparameters)) _opj.set_default_decoder_parameters(ctypes.byref(dparameters))
dparameters.cp_reduce = reduce dparameters.cp_reduce = rlevel
dparameters.decod_format = self._codec_format dparameters.decod_format = self._codec_format
infile = self.filename.encode() infile = self.filename.encode()
@ -651,11 +659,11 @@ class Jp2k(Jp2kBox):
dinfo = _opj.create_decompress(dparameters.decod_format) dinfo = _opj.create_decompress(dparameters.decod_format)
event_mgr = _opj.event_mgr_t() event_mgr = _opj.event_mgr_t()
info_handler = ctypes.cast(_info_callback, ctypes.c_void_p) info_handler = ctypes.cast(_INFO_CALLBACK, ctypes.c_void_p)
event_mgr.info_handler = info_handler if verbose else None event_mgr.info_handler = info_handler if verbose else None
event_mgr.warning_handler = ctypes.cast(_warning_callback, event_mgr.warning_handler = ctypes.cast(_WARNING_CALLBACK,
ctypes.c_void_p) ctypes.c_void_p)
event_mgr.error_handler = ctypes.cast(_error_callback, event_mgr.error_handler = ctypes.cast(_ERROR_CALLBACK,
ctypes.c_void_p) ctypes.c_void_p)
_opj.set_event_mgr(dinfo, ctypes.byref(event_mgr)) _opj.set_event_mgr(dinfo, ctypes.byref(event_mgr))
@ -719,7 +727,7 @@ class Jp2k(Jp2kBox):
return data return data
def _read_openjp2(self, reduce=0, layer=0, area=None, tile=None, def _read_openjp2(self, rlevel=0, layer=0, area=None, tile=None,
verbose=False): verbose=False):
"""Read a JPEG 2000 image using libopenjp2. """Read a JPEG 2000 image using libopenjp2.
@ -727,8 +735,8 @@ class Jp2k(Jp2kBox):
---------- ----------
layer : int, optional layer : int, optional
Number of quality layer to decode. Number of quality layer to decode.
reduce : int, optional rlevel : int, optional
Factor by which to reduce output resolution. Use -1 to get the Factor by which to rlevel output resolution. Use -1 to get the
lowest resolution thumbnail. lowest resolution thumbnail.
area : tuple, optional area : tuple, optional
Specifies decoding image area, Specifies decoding image area,
@ -756,7 +764,7 @@ class Jp2k(Jp2kBox):
msg = "Components must all have the same subsampling factors." msg = "Components must all have the same subsampling factors."
raise RuntimeError(msg) raise RuntimeError(msg)
img_array = self._read_common(reduce=reduce, img_array = self._read_common(rlevel=rlevel,
layer=layer, layer=layer,
area=area, area=area,
tile=tile, tile=tile,
@ -769,7 +777,7 @@ class Jp2k(Jp2kBox):
return img_array return img_array
def _read_common(self, reduce=0, layer=0, area=None, tile=None, def _read_common(self, rlevel=0, layer=0, area=None, tile=None,
verbose=False, as_bands=False): verbose=False, as_bands=False):
"""Read a JPEG 2000 image. """Read a JPEG 2000 image.
@ -777,8 +785,8 @@ class Jp2k(Jp2kBox):
---------- ----------
layer : int, optional layer : int, optional
Number of quality layer to decode. Number of quality layer to decode.
reduce : int, optional rlevel : int, optional
Factor by which to reduce output resolution. Factor by which to rlevel output resolution.
area : tuple, optional area : tuple, optional
Specifies decoding image area, Specifies decoding image area,
(first_row, first_col, last_row, last_col) (first_row, first_col, last_row, last_col)
@ -805,12 +813,12 @@ class Jp2k(Jp2kBox):
dparam.cp_layer = layer dparam.cp_layer = layer
if reduce == -1: if rlevel == -1:
# Get the lowest resolution thumbnail. # Get the lowest resolution thumbnail.
codestream = self.get_codestream() codestream = self.get_codestream()
reduce = codestream.segment[2].spcod[4] rlevel = codestream.segment[2].spcod[4]
dparam.cp_reduce = reduce dparam.cp_reduce = rlevel
if area is not None: if area is not None:
if area[0] < 0 or area[1] < 0: if area[0] < 0 or area[1] < 0:
msg = "Upper left corner coordinates must be nonnegative: {0}" msg = "Upper left corner coordinates must be nonnegative: {0}"
@ -836,10 +844,10 @@ class Jp2k(Jp2kBox):
codec = _opj2.create_decompress(self._codec_format) codec = _opj2.create_decompress(self._codec_format)
stack.callback(_opj2.destroy_codec, codec) stack.callback(_opj2.destroy_codec, codec)
_opj2.set_error_handler(codec, _error_callback) _opj2.set_error_handler(codec, _ERROR_CALLBACK)
_opj2.set_warning_handler(codec, _warning_callback) _opj2.set_warning_handler(codec, _WARNING_CALLBACK)
if verbose: if verbose:
_opj2.set_info_handler(codec, _info_callback) _opj2.set_info_handler(codec, _INFO_CALLBACK)
else: else:
_opj2.set_info_handler(codec, None) _opj2.set_info_handler(codec, None)
@ -905,7 +913,7 @@ class Jp2k(Jp2kBox):
return data return data
def read_bands(self, reduce=0, layer=0, area=None, tile=None, def read_bands(self, rlevel=0, layer=0, area=None, tile=None,
verbose=False): verbose=False):
"""Read a JPEG 2000 image. """Read a JPEG 2000 image.
@ -917,8 +925,8 @@ class Jp2k(Jp2kBox):
---------- ----------
layer : int, optional layer : int, optional
Number of quality layer to decode. Number of quality layer to decode.
reduce : int, optional rlevel : int, optional
Factor by which to reduce output resolution. Factor by which to rlevel output resolution.
area : tuple, optional area : tuple, optional
Specifies decoding image area, Specifies decoding image area,
(first_row, first_col, last_row, last_col) (first_row, first_col, last_row, last_col)
@ -941,7 +949,7 @@ class Jp2k(Jp2kBox):
>>> import glymur >>> import glymur
>>> jfile = glymur.data.nemo() >>> jfile = glymur.data.nemo()
>>> jp = glymur.Jp2k(jfile) >>> jp = glymur.Jp2k(jfile)
>>> components_lst = jp.read_bands(reduce=1) >>> components_lst = jp.read_bands(rlevel=1)
Raises Raises
------ ------
@ -952,7 +960,7 @@ class Jp2k(Jp2kBox):
msg = "Requires openjp2 library." msg = "Requires openjp2 library."
raise NotImplementedError(msg) raise NotImplementedError(msg)
lst = self._read_common(reduce=reduce, lst = self._read_common(rlevel=rlevel,
layer=layer, layer=layer,
area=area, area=area,
tile=tile, tile=tile,
@ -1006,8 +1014,8 @@ class Jp2k(Jp2kBox):
raise RuntimeError(msg) raise RuntimeError(msg)
fptr.seek(box[0].offset) fptr.seek(box[0].offset)
read_buffer = fptr.read(8) read_buffer = fptr.read(8)
(L, T) = struct.unpack('>I4s', read_buffer) (box_length, _) = struct.unpack('>I4s', read_buffer)
if L == 1: if box_length == 1:
# Seek past the XL field. # Seek past the XL field.
read_buffer = fptr.read(8) read_buffer = fptr.read(8)
codestream = Codestream(fptr, header_only=header_only) codestream = Codestream(fptr, header_only=header_only)

View file

@ -46,7 +46,7 @@ class TestCallbacks(unittest.TestCase):
# Verify that we get the expected stdio output when our internal info # Verify that we get the expected stdio output when our internal info
# callback handler is enabled. # callback handler is enabled.
j = glymur.Jp2k(self.j2kfile) j = glymur.Jp2k(self.j2kfile)
d = j.read(reduce=1, verbose=True, area=(0, 0, 200, 150)) d = j.read(rlevel=1, verbose=True, area=(0, 0, 200, 150))
actual = sys.stdout.getvalue().strip() actual = sys.stdout.getvalue().strip()
lines = ['[INFO] Start to read j2k main header (0).', lines = ['[INFO] Start to read j2k main header (0).',
@ -92,7 +92,7 @@ class TestCallbacks15(unittest.TestCase):
# Verify that we get the expected stdio output when our internal info # Verify that we get the expected stdio output when our internal info
# callback handler is enabled. # callback handler is enabled.
j = glymur.Jp2k(self.j2kfile) j = glymur.Jp2k(self.j2kfile)
d = j.read(reduce=1, verbose=True) d = j.read(rlevel=1, verbose=True)
actual = sys.stdout.getvalue().strip() actual = sys.stdout.getvalue().strip()
regex = re.compile(r"""\[INFO\]\stile\s1\sof\s1\s+ regex = re.compile(r"""\[INFO\]\stile\s1\sof\s1\s+

View file

@ -88,11 +88,11 @@ class TestJp2k(unittest.TestCase):
with self.assertWarns(UserWarning) as cw: with self.assertWarns(UserWarning) as cw:
jp2k = Jp2k(self._bad_xml_file) jp2k = Jp2k(self._bad_xml_file)
def test_reduce_max(self): def test_rlevel_max(self):
# Verify that reduce=-1 gets us the lowest resolution image # Verify that rlevel=-1 gets us the lowest resolution image
j = Jp2k(self.j2kfile) j = Jp2k(self.j2kfile)
thumbnail1 = j.read(reduce=-1) thumbnail1 = j.read(rlevel=-1)
thumbnail2 = j.read(reduce=5) thumbnail2 = j.read(rlevel=5)
np.testing.assert_array_equal(thumbnail1, thumbnail2) np.testing.assert_array_equal(thumbnail1, thumbnail2)
self.assertEqual(thumbnail1.shape, (25, 15, 3)) self.assertEqual(thumbnail1.shape, (25, 15, 3))
@ -120,11 +120,11 @@ class TestJp2k(unittest.TestCase):
# End corner must be >= start corner # End corner must be >= start corner
d = j.read(area=(10, 10, 8, 8)) d = j.read(area=(10, 10, 8, 8))
def test_reduce_too_high(self): def test_rlevel_too_high(self):
# Verify that we error out appropriately if not given a JPEG 2000 file. # Verify that we error out appropriately if not given a JPEG 2000 file.
j = Jp2k(self.jp2file) j = Jp2k(self.jp2file)
with self.assertRaises(IOError): with self.assertRaises(IOError):
d = j.read(reduce=6) d = j.read(rlevel=6)
def test_not_JPEG2000(self): def test_not_JPEG2000(self):
# Verify that we error out appropriately if not given a JPEG 2000 file. # Verify that we error out appropriately if not given a JPEG 2000 file.
@ -167,7 +167,7 @@ class TestJp2k(unittest.TestCase):
def test_write_cprl(self): def test_write_cprl(self):
# Issue 17 # Issue 17
j = Jp2k(self.jp2file) j = Jp2k(self.jp2file)
expdata = j.read(reduce=1) expdata = j.read(rlevel=1)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile: with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
ofile = Jp2k(tfile.name, 'wb') ofile = Jp2k(tfile.name, 'wb')
ofile.write(expdata, prog='CPRL') ofile.write(expdata, prog='CPRL')
@ -529,7 +529,7 @@ class TestJp2k(unittest.TestCase):
def test_asoc_label_box(self): def test_asoc_label_box(self):
# Construct a fake file with an asoc and a label box, as # Construct a fake file with an asoc and a label box, as
# OpenJPEG doesn't have such a file. # OpenJPEG doesn't have such a file.
data = Jp2k(self.jp2file).read(reduce=1) data = Jp2k(self.jp2file).read(rlevel=1)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile: with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
j = Jp2k(tfile.name, 'wb') j = Jp2k(tfile.name, 'wb')
j.write(data) j.write(data)
@ -600,10 +600,10 @@ class TestJp2k(unittest.TestCase):
:\sdx=1\sdy=0''', re.VERBOSE) :\sdx=1\sdy=0''', re.VERBOSE)
if sys.hexversion < 0x03020000: if sys.hexversion < 0x03020000:
with self.assertRaisesRegexp((IOError, OSError), regexp) as ce: with self.assertRaisesRegexp((IOError, OSError), regexp) as ce:
d = j.read(reduce=1) d = j.read(rlevel=1)
else: else:
with self.assertRaisesRegex((IOError, OSError), regexp) as ce: with self.assertRaisesRegex((IOError, OSError), regexp) as ce:
d = j.read(reduce=1) d = j.read(rlevel=1)
def test_xmp_attribute(self): def test_xmp_attribute(self):
# Verify that we can read the XMP packet in our shipping example file. # Verify that we can read the XMP packet in our shipping example file.
@ -699,7 +699,7 @@ class TestJp2k15(unittest.TestCase):
# and OPJ_DATA_ROOT is not set. We need at least one # and OPJ_DATA_ROOT is not set. We need at least one
# working JP2 test. # working JP2 test.
j2k = Jp2k(self.jp2file) j2k = Jp2k(self.jp2file)
d = j2k.read(reduce=1) d = j2k.read(rlevel=1)
def test_basic_j2k(self): def test_basic_j2k(self):
# This test is only useful when openjp2 is not available # This test is only useful when openjp2 is not available

View file

@ -49,7 +49,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_01_j2k(self): def test_ETS_C0P0_p0_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_01.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_01.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -62,7 +62,7 @@ class TestSuite(unittest.TestCase):
# really know what to do with it. Just ignore. # really know what to do with it. Just ignore.
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_02.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_02.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -72,7 +72,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_03_j2k(self): def test_ETS_C0P0_p0_03_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_03r0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_03r0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -81,7 +81,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_03_j2k_r1(self): def test_ETS_C0P0_p0_03_j2k_r1(self):
jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1) jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_03r1.pgx') 'baseline/conformance/c0p0_03r1.pgx')
@ -92,7 +92,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_04_j2k(self): def test_ETS_C0P0_p0_04_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3) jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_04.pgx') 'baseline/conformance/c0p0_04.pgx')
@ -105,7 +105,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_05_j2k(self): def test_ETS_C0P0_p0_05_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_05.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_05.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read_bands(reduce=3) jpdata = jp2k.read_bands(rlevel=3)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_05.pgx') 'baseline/conformance/c0p0_05.pgx')
@ -117,7 +117,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_06_j2k(self): def test_ETS_C0P0_p0_06_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3) jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_06.pgx') 'baseline/conformance/c0p0_06.pgx')
@ -142,7 +142,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_08_j2k(self): def test_ETS_C0P0_p0_08_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_08.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_08.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=5) jpdata = jp2k.read(rlevel=5)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_08.pgx') 'baseline/conformance/c0p0_08.pgx')
@ -154,7 +154,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_09_j2k(self): def test_ETS_C0P0_p0_09_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=2) jpdata = jp2k.read(rlevel=2)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_09.pgx') 'baseline/conformance/c0p0_09.pgx')
@ -167,7 +167,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_10_j2k(self): def test_ETS_C0P0_p0_10_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_10.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_10.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_10.pgx') 'baseline/conformance/c0p0_10.pgx')
@ -179,7 +179,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_11_j2k(self): def test_ETS_C0P0_p0_11_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_11.pgx') 'baseline/conformance/c0p0_11.pgx')
@ -191,7 +191,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_12_j2k(self): def test_ETS_C0P0_p0_12_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_12.pgx') 'baseline/conformance/c0p0_12.pgx')
@ -203,7 +203,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_13_j2k(self): def test_ETS_C0P0_p0_13_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_13.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_13.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_13.pgx') 'baseline/conformance/c0p0_13.pgx')
@ -215,7 +215,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_14_j2k(self): def test_ETS_C0P0_p0_14_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_14.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_14.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=2) jpdata = jp2k.read(rlevel=2)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_14.pgx') 'baseline/conformance/c0p0_14.pgx')
@ -227,7 +227,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_15_j2k(self): def test_ETS_C0P0_p0_15_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_15r0.pgx') 'baseline/conformance/c0p0_15r0.pgx')
@ -238,7 +238,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_15_j2k_r1(self): def test_ETS_C0P0_p0_15_j2k_r1(self):
jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1) jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_15r1.pgx') 'baseline/conformance/c0p0_15r1.pgx')
@ -249,7 +249,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P0_p0_16_j2k(self): def test_ETS_C0P0_p0_16_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_16.pgx') 'baseline/conformance/c0p0_16.pgx')
@ -260,7 +260,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_01_j2k(self): def test_ETS_C0P1_p1_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_01.pgx') 'baseline/conformance/c0p1_01.pgx')
@ -272,7 +272,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_02_j2k(self): def test_ETS_C0P1_p1_02_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_02.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_02.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3) jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_02.pgx') 'baseline/conformance/c0p1_02.pgx')
@ -288,7 +288,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_03_j2k(self): def test_ETS_C0P1_p1_03_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_03.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_03.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3) jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_03.pgx') 'baseline/conformance/c0p1_03.pgx')
@ -304,7 +304,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_04_j2k(self): def test_ETS_C0P1_p1_04_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_04r0.pgx') 'baseline/conformance/c0p1_04r0.pgx')
@ -318,7 +318,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_04_j2k_r3(self): def test_ETS_C0P1_p1_04_j2k_r3(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=3) jpdata = jp2k.read(rlevel=3)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_04r3.pgx') 'baseline/conformance/c0p1_04r3.pgx')
@ -332,7 +332,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_05_j2k(self): def test_ETS_C0P1_p1_05_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_05.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_05.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=4) jpdata = jp2k.read(rlevel=4)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_05.pgx') 'baseline/conformance/c0p1_05.pgx')
@ -347,7 +347,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_06_j2k(self): def test_ETS_C0P1_p1_06_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1) jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_06.pgx') 'baseline/conformance/c0p1_06.pgx')
@ -362,7 +362,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C0P1_p1_07_j2k(self): def test_ETS_C0P1_p1_07_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_07.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_07.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_07.pgx') 'baseline/conformance/c0p1_07.pgx')
@ -376,7 +376,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_01_j2k(self): def test_ETS_C1P0_p0_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_01_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_01_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -390,7 +390,7 @@ class TestSuite(unittest.TestCase):
# really know what to do with it. Just ignore. # really know what to do with it. Just ignore.
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_02_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_02_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -400,7 +400,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_03_j2k(self): def test_ETS_C1P0_p0_03_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_03_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_03_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -410,7 +410,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_04_j2k(self): def test_ETS_C1P0_p0_04_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_04_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_04_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -498,7 +498,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_08_j2k(self): def test_ETS_C1P0_p0_08_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_08.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_08.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1) jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_08_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_08_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -515,7 +515,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_09_j2k(self): def test_ETS_C1P0_p0_09_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_09_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_09_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -524,7 +524,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_10_j2k(self): def test_ETS_C1P0_p0_10_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_10.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_10.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_10_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_10_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -541,7 +541,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_11_j2k(self): def test_ETS_C1P0_p0_11_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_11_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_11_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -551,7 +551,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_12_j2k(self): def test_ETS_C1P0_p0_12_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_12_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_12_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -561,7 +561,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_13_j2k(self): def test_ETS_C1P0_p0_13_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_13.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_13.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_13_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_13_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -582,7 +582,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_14_j2k(self): def test_ETS_C1P0_p0_14_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_14.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_14.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_14_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_14_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -599,7 +599,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_15_j2k(self): def test_ETS_C1P0_p0_15_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_15_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_15_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -608,7 +608,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P0_p0_16_j2k(self): def test_ETS_C1P0_p0_16_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_16_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_16_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -617,7 +617,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P1_p1_01_j2k(self): def test_ETS_C1P1_p1_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_01_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_01_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -626,7 +626,7 @@ class TestSuite(unittest.TestCase):
def test_ETS_C1P1_p1_02_j2k(self): def test_ETS_C1P1_p1_02_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_02.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_02.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_02_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_02_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -1140,51 +1140,51 @@ class TestSuite(unittest.TestCase):
def test_NR_DEC_p1_04_j2k_50_decode(self): def test_NR_DEC_p1_04_j2k_50_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(0, 0, 1024, 1024), reduce=2) ssdata = jp2k.read(area=(0, 0, 1024, 1024), rlevel=2)
odata = jp2k.read(reduce=2) odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[0:256, 0:256]) np.testing.assert_array_equal(ssdata, odata[0:256, 0:256])
def test_NR_DEC_p1_04_j2k_51_decode(self): def test_NR_DEC_p1_04_j2k_51_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(640, 512, 768, 640), reduce=2) ssdata = jp2k.read(area=(640, 512, 768, 640), rlevel=2)
odata = jp2k.read(reduce=2) odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[160:192, 128:160]) np.testing.assert_array_equal(ssdata, odata[160:192, 128:160])
def test_NR_DEC_p1_04_j2k_52_decode(self): def test_NR_DEC_p1_04_j2k_52_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(896, 896, 1024, 1024), reduce=2) ssdata = jp2k.read(area=(896, 896, 1024, 1024), rlevel=2)
odata = jp2k.read(reduce=2) odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[224:352, 224:352]) np.testing.assert_array_equal(ssdata, odata[224:352, 224:352])
def test_NR_DEC_p1_04_j2k_53_decode(self): def test_NR_DEC_p1_04_j2k_53_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(500, 100, 800, 300), reduce=2) ssdata = jp2k.read(area=(500, 100, 800, 300), rlevel=2)
odata = jp2k.read(reduce=2) odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[125:200, 25:75]) np.testing.assert_array_equal(ssdata, odata[125:200, 25:75])
def test_NR_DEC_p1_04_j2k_54_decode(self): def test_NR_DEC_p1_04_j2k_54_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(520, 260, 600, 360), reduce=2) ssdata = jp2k.read(area=(520, 260, 600, 360), rlevel=2)
odata = jp2k.read(reduce=2) odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[130:150, 65:90]) np.testing.assert_array_equal(ssdata, odata[130:150, 65:90])
def test_NR_DEC_p1_04_j2k_55_decode(self): def test_NR_DEC_p1_04_j2k_55_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(520, 260, 660, 360), reduce=2) ssdata = jp2k.read(area=(520, 260, 660, 360), rlevel=2)
odata = jp2k.read(reduce=2) odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[130:165, 65:90]) np.testing.assert_array_equal(ssdata, odata[130:165, 65:90])
def test_NR_DEC_p1_04_j2k_56_decode(self): def test_NR_DEC_p1_04_j2k_56_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(520, 360, 600, 400), reduce=2) ssdata = jp2k.read(area=(520, 360, 600, 400), rlevel=2)
odata = jp2k.read(reduce=2) odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(ssdata, odata[130:150, 90:100]) np.testing.assert_array_equal(ssdata, odata[130:150, 90:100])
def test_NR_DEC_p1_04_j2k_57_decode(self): def test_NR_DEC_p1_04_j2k_57_decode(self):
@ -1201,8 +1201,8 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
tdata = jp2k.read(tile=63, reduce=2) # last tile tdata = jp2k.read(tile=63, rlevel=2) # last tile
odata = jp2k.read(reduce=2) odata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(tdata, odata[224:256, 224:256]) np.testing.assert_array_equal(tdata, odata[224:256, 224:256])
def test_NR_DEC_p1_04_j2k_59_decode(self): def test_NR_DEC_p1_04_j2k_59_decode(self):
@ -1219,8 +1219,8 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
tdata = jp2k.read(tile=12, reduce=1) # 2nd row, 5th column tdata = jp2k.read(tile=12, rlevel=1) # 2nd row, 5th column
odata = jp2k.read(reduce=1) odata = jp2k.read(rlevel=1)
np.testing.assert_array_equal(tdata, odata[64:128, 256:320]) np.testing.assert_array_equal(tdata, odata[64:128, 256:320])
@unittest.skip("fprintf stderr output in r2343.") @unittest.skip("fprintf stderr output in r2343.")
@ -1283,45 +1283,45 @@ class TestSuite(unittest.TestCase):
def test_NR_DEC_p1_06_j2k_68_decode(self): def test_NR_DEC_p1_06_j2k_68_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(0, 0, 12, 12), reduce=1) ssdata = jp2k.read(area=(0, 0, 12, 12), rlevel=1)
odata = jp2k.read(reduce=1) odata = jp2k.read(rlevel=1)
np.testing.assert_array_equal(ssdata, odata[0:6, 0:6]) np.testing.assert_array_equal(ssdata, odata[0:6, 0:6])
@unittest.skip("fprintf stderr output in r2343.") @unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_69_decode(self): def test_NR_DEC_p1_06_j2k_69_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(1, 8, 8, 11), reduce=1) ssdata = jp2k.read(area=(1, 8, 8, 11), rlevel=1)
self.assertEqual(ssdata.shape, (3, 2, 3)) self.assertEqual(ssdata.shape, (3, 2, 3))
def test_NR_DEC_p1_06_j2k_70_decode(self): def test_NR_DEC_p1_06_j2k_70_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(9, 9, 12, 12), reduce=1) ssdata = jp2k.read(area=(9, 9, 12, 12), rlevel=1)
self.assertEqual(ssdata.shape, (1, 1, 3)) self.assertEqual(ssdata.shape, (1, 1, 3))
def test_NR_DEC_p1_06_j2k_71_decode(self): def test_NR_DEC_p1_06_j2k_71_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(10, 4, 12, 10), reduce=1) ssdata = jp2k.read(area=(10, 4, 12, 10), rlevel=1)
self.assertEqual(ssdata.shape, (1, 3, 3)) self.assertEqual(ssdata.shape, (1, 3, 3))
def test_NR_DEC_p1_06_j2k_72_decode(self): def test_NR_DEC_p1_06_j2k_72_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(3, 3, 9, 9), reduce=1) ssdata = jp2k.read(area=(3, 3, 9, 9), rlevel=1)
self.assertEqual(ssdata.shape, (3, 3, 3)) self.assertEqual(ssdata.shape, (3, 3, 3))
def test_NR_DEC_p1_06_j2k_73_decode(self): def test_NR_DEC_p1_06_j2k_73_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(4, 4, 7, 7), reduce=1) ssdata = jp2k.read(area=(4, 4, 7, 7), rlevel=1)
self.assertEqual(ssdata.shape, (2, 2, 3)) self.assertEqual(ssdata.shape, (2, 2, 3))
def test_NR_DEC_p1_06_j2k_74_decode(self): def test_NR_DEC_p1_06_j2k_74_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(4, 4, 5, 5), reduce=1) ssdata = jp2k.read(area=(4, 4, 5, 5), rlevel=1)
self.assertEqual(ssdata.shape, (1, 1, 3)) self.assertEqual(ssdata.shape, (1, 1, 3))
def test_NR_DEC_p1_06_j2k_75_decode(self): def test_NR_DEC_p1_06_j2k_75_decode(self):
@ -1329,7 +1329,7 @@ class TestSuite(unittest.TestCase):
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
with self.assertRaises((IOError, OSError)) as ce: with self.assertRaises((IOError, OSError)) as ce:
ssdata = jp2k.read(area=(9, 9, 12, 12), reduce=2) ssdata = jp2k.read(area=(9, 9, 12, 12), rlevel=2)
@unittest.skip("fprintf stderr output in r2343.") @unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_76_decode(self): def test_NR_DEC_p1_06_j2k_76_decode(self):
@ -1378,7 +1378,7 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
tiledata = jp2k.read(tile=0, reduce=2) tiledata = jp2k.read(tile=0, rlevel=2)
@unittest.skip("fprintf stderr output in r2343.") @unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_81_decode(self): def test_NR_DEC_p1_06_j2k_81_decode(self):
@ -1387,7 +1387,7 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
tiledata = jp2k.read(tile=5, reduce=2) tiledata = jp2k.read(tile=5, rlevel=2)
@unittest.skip("fprintf stderr output in r2343.") @unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_82_decode(self): def test_NR_DEC_p1_06_j2k_82_decode(self):
@ -1396,7 +1396,7 @@ class TestSuite(unittest.TestCase):
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
tiledata = jp2k.read(tile=9, reduce=2) tiledata = jp2k.read(tile=9, rlevel=2)
@unittest.skip("fprintf stderr output in r2343.") @unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_83_decode(self): def test_NR_DEC_p1_06_j2k_83_decode(self):
@ -1406,14 +1406,14 @@ class TestSuite(unittest.TestCase):
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
with self.assertRaises((IOError, OSError)) as ce: with self.assertRaises((IOError, OSError)) as ce:
tiledata = jp2k.read(tile=15, reduce=2) tiledata = jp2k.read(tile=15, rlevel=2)
@unittest.skip("fprintf stderr output in r2343.") @unittest.skip("fprintf stderr output in r2343.")
def test_NR_DEC_p1_06_j2k_84_decode(self): def test_NR_DEC_p1_06_j2k_84_decode(self):
# Just read the data, don't bother verifying. # Just read the data, don't bother verifying.
jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_06.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
data = jp2k.read(reduce=4) data = jp2k.read(rlevel=4)
def test_NR_DEC_p0_04_j2k_85_decode(self): def test_NR_DEC_p0_04_j2k_85_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
@ -1460,43 +1460,43 @@ class TestSuite(unittest.TestCase):
def test_NR_DEC_p0_04_j2k_91_decode(self): def test_NR_DEC_p0_04_j2k_91_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(0, 0, 256, 256), reduce=2) ssdata = jp2k.read(area=(0, 0, 256, 256), rlevel=2)
fulldata = jp2k.read(reduce=2) fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[0:64, 0:64], ssdata) np.testing.assert_array_equal(fulldata[0:64, 0:64], ssdata)
def test_NR_DEC_p0_04_j2k_92_decode(self): def test_NR_DEC_p0_04_j2k_92_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(0, 128, 128, 256), reduce=2) ssdata = jp2k.read(area=(0, 128, 128, 256), rlevel=2)
fulldata = jp2k.read(reduce=2) fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[0:32, 32:64], ssdata) np.testing.assert_array_equal(fulldata[0:32, 32:64], ssdata)
def test_NR_DEC_p0_04_j2k_93_decode(self): def test_NR_DEC_p0_04_j2k_93_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(10, 50, 200, 120), reduce=2) ssdata = jp2k.read(area=(10, 50, 200, 120), rlevel=2)
fulldata = jp2k.read(reduce=2) fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[3:50, 13:30], ssdata) np.testing.assert_array_equal(fulldata[3:50, 13:30], ssdata)
def test_NR_DEC_p0_04_j2k_94_decode(self): def test_NR_DEC_p0_04_j2k_94_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(150, 10, 210, 190), reduce=2) ssdata = jp2k.read(area=(150, 10, 210, 190), rlevel=2)
fulldata = jp2k.read(reduce=2) fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[38:53, 3:48], ssdata) np.testing.assert_array_equal(fulldata[38:53, 3:48], ssdata)
def test_NR_DEC_p0_04_j2k_95_decode(self): def test_NR_DEC_p0_04_j2k_95_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(80, 100, 150, 200), reduce=2) ssdata = jp2k.read(area=(80, 100, 150, 200), rlevel=2)
fulldata = jp2k.read(reduce=2) fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[20:38, 25:50], ssdata) np.testing.assert_array_equal(fulldata[20:38, 25:50], ssdata)
def test_NR_DEC_p0_04_j2k_96_decode(self): def test_NR_DEC_p0_04_j2k_96_decode(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
ssdata = jp2k.read(area=(20, 150, 50, 200), reduce=2) ssdata = jp2k.read(area=(20, 150, 50, 200), rlevel=2)
fulldata = jp2k.read(reduce=2) fulldata = jp2k.read(rlevel=2)
np.testing.assert_array_equal(fulldata[5:13, 38:50], ssdata) np.testing.assert_array_equal(fulldata[5:13, 38:50], ssdata)
@ -7360,7 +7360,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_01_j2k(self): def test_ETS_C0P0_p0_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_01.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_01.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7373,7 +7373,7 @@ class TestSuite15(unittest.TestCase):
# really know what to do with it. Just ignore. # really know what to do with it. Just ignore.
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_02.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c0p0_02.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7382,7 +7382,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_09_j2k(self): def test_ETS_C0P0_p0_09_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=2) jpdata = jp2k.read(rlevel=2)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_09.pgx') 'baseline/conformance/c0p0_09.pgx')
@ -7394,7 +7394,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_11_j2k(self): def test_ETS_C0P0_p0_11_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_11.pgx') 'baseline/conformance/c0p0_11.pgx')
@ -7406,7 +7406,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_12_j2k(self): def test_ETS_C0P0_p0_12_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_12.pgx') 'baseline/conformance/c0p0_12.pgx')
@ -7417,7 +7417,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P0_p0_16_j2k(self): def test_ETS_C0P0_p0_16_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p0_16.pgx') 'baseline/conformance/c0p0_16.pgx')
@ -7428,7 +7428,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C0P1_p1_01_j2k(self): def test_ETS_C0P1_p1_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, pgxfile = os.path.join(data_root,
'baseline/conformance/c0p1_01.pgx') 'baseline/conformance/c0p1_01.pgx')
@ -7439,7 +7439,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_01_j2k(self): def test_ETS_C1P0_p0_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_01.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_01_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_01_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7453,7 +7453,7 @@ class TestSuite15(unittest.TestCase):
# really know what to do with it. Just ignore. # really know what to do with it. Just ignore.
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_02_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_02_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7463,7 +7463,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_03_j2k(self): def test_ETS_C1P0_p0_03_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_03.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_03_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_03_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7473,7 +7473,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_04_j2k(self): def test_ETS_C1P0_p0_04_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_04.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_04_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_04_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7493,7 +7493,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_08_j2k(self): def test_ETS_C1P0_p0_08_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_08.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_08.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=1) jpdata = jp2k.read(rlevel=1)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_08_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_08_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7510,7 +7510,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_09_j2k(self): def test_ETS_C1P0_p0_09_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_09.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_09_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_09_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7522,7 +7522,7 @@ class TestSuite15(unittest.TestCase):
with warnings.catch_warnings(): with warnings.catch_warnings():
# This file has an invalid ICC profile # This file has an invalid ICC profile
warnings.simplefilter("ignore") warnings.simplefilter("ignore")
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_10_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_10_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7539,7 +7539,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_11_j2k(self): def test_ETS_C1P0_p0_11_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_11.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_11_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_11_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7549,7 +7549,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_12_j2k(self): def test_ETS_C1P0_p0_12_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_12.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_12_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_12_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7559,7 +7559,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_13_j2k(self): def test_ETS_C1P0_p0_13_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_13.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_13.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_13_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_13_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7580,7 +7580,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_14_j2k(self): def test_ETS_C1P0_p0_14_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_14.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_14.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_14_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_14_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7597,7 +7597,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_15_j2k(self): def test_ETS_C1P0_p0_15_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_15.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_15_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_15_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7606,7 +7606,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P0_p0_16_j2k(self): def test_ETS_C1P0_p0_16_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k') jfile = os.path.join(data_root, 'input/conformance/p0_16.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_16_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p0_16_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7615,7 +7615,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P1_p1_01_j2k(self): def test_ETS_C1P1_p1_01_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_01.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_01_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_01_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)
@ -7624,7 +7624,7 @@ class TestSuite15(unittest.TestCase):
def test_ETS_C1P1_p1_02_j2k(self): def test_ETS_C1P1_p1_02_j2k(self):
jfile = os.path.join(data_root, 'input/conformance/p1_02.j2k') jfile = os.path.join(data_root, 'input/conformance/p1_02.j2k')
jp2k = Jp2k(jfile) jp2k = Jp2k(jfile)
jpdata = jp2k.read(reduce=0) jpdata = jp2k.read(rlevel=0)
pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_02_0.pgx') pgxfile = os.path.join(data_root, 'baseline/conformance/c1p1_02_0.pgx')
pgxdata = read_pgx(pgxfile) pgxdata = read_pgx(pgxfile)

View file

@ -157,7 +157,7 @@ class TestSuiteNegative(unittest.TestCase):
def test_precinct_size_not_multiple_of_two(self): def test_precinct_size_not_multiple_of_two(self):
# Seems like precinct sizes should be powers of two. # Seems like precinct sizes should be powers of two.
ifile = Jp2k(self.j2kfile) ifile = Jp2k(self.j2kfile)
data = ifile.read(reduce=2) data = ifile.read(rlevel=2)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile: with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
ofile = Jp2k(tfile.name, 'wb') ofile = Jp2k(tfile.name, 'wb')
with self.assertRaises(IOError) as ce: with self.assertRaises(IOError) as ce:
@ -166,7 +166,7 @@ class TestSuiteNegative(unittest.TestCase):
def test_codeblock_size_not_multiple_of_two(self): def test_codeblock_size_not_multiple_of_two(self):
# Seems like code block sizes should be powers of two. # Seems like code block sizes should be powers of two.
ifile = Jp2k(self.j2kfile) ifile = Jp2k(self.j2kfile)
data = ifile.read(reduce=2) data = ifile.read(rlevel=2)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile: with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
ofile = Jp2k(tfile.name, 'wb') ofile = Jp2k(tfile.name, 'wb')
with self.assertRaises(IOError) as ce: with self.assertRaises(IOError) as ce:
@ -176,7 +176,7 @@ class TestSuiteNegative(unittest.TestCase):
# Seems like code block sizes should never exceed half that of # Seems like code block sizes should never exceed half that of
# precinct size. # precinct size.
ifile = Jp2k(self.j2kfile) ifile = Jp2k(self.j2kfile)
data = ifile.read(reduce=2) data = ifile.read(rlevel=2)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile: with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
ofile = Jp2k(tfile.name, 'wb') ofile = Jp2k(tfile.name, 'wb')
with self.assertRaises(IOError) as ce: with self.assertRaises(IOError) as ce:

View file

@ -34,7 +34,7 @@ class TestPrintingNeedsLib(unittest.TestCase):
with tempfile.NamedTemporaryFile(suffix='.jp2', delete=False) as tfile: with tempfile.NamedTemporaryFile(suffix='.jp2', delete=False) as tfile:
cls._plain_nemo_file = tfile.name cls._plain_nemo_file = tfile.name
ijfile = Jp2k(jp2file) ijfile = Jp2k(jp2file)
data = ijfile.read(reduce=1) data = ijfile.read(rlevel=1)
ojfile = Jp2k(cls._plain_nemo_file, 'wb') ojfile = Jp2k(cls._plain_nemo_file, 'wb')
ojfile.write(data) ojfile.write(data)
@ -122,7 +122,7 @@ class TestPrintingNeedsLib(unittest.TestCase):
def test_asoc_label_box(self): def test_asoc_label_box(self):
# Construct a fake file with an asoc and a label box, as # Construct a fake file with an asoc and a label box, as
# OpenJPEG doesn't have such a file. # OpenJPEG doesn't have such a file.
data = glymur.Jp2k(self.jp2file).read(reduce=1) data = glymur.Jp2k(self.jp2file).read(rlevel=1)
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile: with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
j = glymur.Jp2k(tfile.name, 'wb') j = glymur.Jp2k(tfile.name, 'wb')
j.write(data) j.write(data)