Fixed #28
This commit is contained in:
parent
59990291c8
commit
c979d22eeb
4 changed files with 37 additions and 37 deletions
|
|
@ -150,7 +150,7 @@ class ColourSpecificationBox(Jp2kBox):
|
|||
boxes.
|
||||
approximation : int
|
||||
Measure of colorspace accuracy.
|
||||
color_space : int or None
|
||||
colorspace : int or None
|
||||
Enumerated colorspace, corresponds to one of 'sRGB', 'greyscale', or
|
||||
'YCC'. If not None, then icc_profile must be None.
|
||||
icc_profile : byte array or None
|
||||
|
|
@ -170,8 +170,8 @@ class ColourSpecificationBox(Jp2kBox):
|
|||
if self.approximation is not 0:
|
||||
x = _approximation_display[self.approximation]
|
||||
msg += '\n Approximation: {0}'.format(x)
|
||||
if self.color_space is not None:
|
||||
x = _colorspace_map_display[self.color_space]
|
||||
if self.colorspace is not None:
|
||||
x = _colorspace_map_display[self.colorspace]
|
||||
msg += '\n Colorspace: {0}'.format(x)
|
||||
else:
|
||||
x = len(self.icc_profile)
|
||||
|
|
@ -214,12 +214,12 @@ class ColourSpecificationBox(Jp2kBox):
|
|||
if method == 1:
|
||||
# enumerated colour space
|
||||
buffer = f.read(4)
|
||||
kwargs['color_space'], = struct.unpack('>I', buffer)
|
||||
kwargs['colorspace'], = struct.unpack('>I', buffer)
|
||||
kwargs['icc_profile'] = None
|
||||
|
||||
else:
|
||||
# ICC profile
|
||||
kwargs['color_space'] = None
|
||||
kwargs['colorspace'] = None
|
||||
n = offset + length - f.tell()
|
||||
kwargs['icc_profile'] = f.read(n)
|
||||
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ class TestJp2k(unittest.TestCase):
|
|||
self.assertEqual(jp2k.box[2].box[1].longname, 'Colour Specification')
|
||||
self.assertEqual(jp2k.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2k.box[2].box[1].approximation, 0)
|
||||
self.assertEqual(jp2k.box[2].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2k.box[2].box[1].colorspace, glymur.core.SRGB)
|
||||
self.assertIsNone(jp2k.box[2].box[1].icc_profile)
|
||||
|
||||
@unittest.skipIf(data_root is None,
|
||||
|
|
@ -370,14 +370,14 @@ class TestJp2k(unittest.TestCase):
|
|||
j = Jp2k(tfile.name, 'wb')
|
||||
data = np.zeros((128, 128, 3), dtype=np.uint8)
|
||||
j.write(data, colorspace='rgb')
|
||||
self.assertEqual(j.box[2].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(j.box[2].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
def test_specify_gray(self):
|
||||
with tempfile.NamedTemporaryFile(suffix='.jp2') as tfile:
|
||||
j = Jp2k(tfile.name, 'wb')
|
||||
data = np.zeros((128, 128), dtype=np.uint8)
|
||||
j.write(data, colorspace='gray')
|
||||
self.assertEqual(j.box[2].box[1].color_space,
|
||||
self.assertEqual(j.box[2].box[1].colorspace,
|
||||
glymur.core.GREYSCALE)
|
||||
|
||||
def test_specify_grey(self):
|
||||
|
|
@ -385,7 +385,7 @@ class TestJp2k(unittest.TestCase):
|
|||
j = Jp2k(tfile.name, 'wb')
|
||||
data = np.zeros((128, 128), dtype=np.uint8)
|
||||
j.write(data, colorspace='grey')
|
||||
self.assertEqual(j.box[2].box[1].color_space,
|
||||
self.assertEqual(j.box[2].box[1].colorspace,
|
||||
glymur.core.GREYSCALE)
|
||||
|
||||
def test_grey_with_extra_component(self):
|
||||
|
|
@ -396,7 +396,7 @@ class TestJp2k(unittest.TestCase):
|
|||
self.assertEqual(j.box[2].box[0].height, 128)
|
||||
self.assertEqual(j.box[2].box[0].width, 128)
|
||||
self.assertEqual(j.box[2].box[0].num_components, 2)
|
||||
self.assertEqual(j.box[2].box[1].color_space,
|
||||
self.assertEqual(j.box[2].box[1].colorspace,
|
||||
glymur.core.GREYSCALE)
|
||||
|
||||
def test_grey_with_two_extra_components(self):
|
||||
|
|
@ -407,7 +407,7 @@ class TestJp2k(unittest.TestCase):
|
|||
self.assertEqual(j.box[2].box[0].height, 128)
|
||||
self.assertEqual(j.box[2].box[0].width, 128)
|
||||
self.assertEqual(j.box[2].box[0].num_components, 3)
|
||||
self.assertEqual(j.box[2].box[1].color_space,
|
||||
self.assertEqual(j.box[2].box[1].colorspace,
|
||||
glymur.core.GREYSCALE)
|
||||
|
||||
def test_rgb_with_extra_component(self):
|
||||
|
|
@ -418,7 +418,7 @@ class TestJp2k(unittest.TestCase):
|
|||
self.assertEqual(j.box[2].box[0].height, 128)
|
||||
self.assertEqual(j.box[2].box[0].width, 128)
|
||||
self.assertEqual(j.box[2].box[0].num_components, 4)
|
||||
self.assertEqual(j.box[2].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(j.box[2].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
def test_specify_ycc(self):
|
||||
# We don't support writing YCC at the moment.
|
||||
|
|
|
|||
|
|
@ -3403,7 +3403,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[3].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact ??
|
||||
self.assertEqual(jp2.box[3].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
# XML box
|
||||
tags = [x.tag for x in jp2.box[4].xml]
|
||||
|
|
@ -3445,7 +3445,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact??
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.YCC)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.YCC)
|
||||
|
||||
# Jp2 Header
|
||||
# Channel Definition
|
||||
|
|
@ -3491,7 +3491,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.YCC)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.YCC)
|
||||
|
||||
# sub-sampling
|
||||
codestream = jp2.get_codestream()
|
||||
|
|
@ -3537,7 +3537,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact?
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.GREYSCALE)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.GREYSCALE)
|
||||
|
||||
def test_NR_file5_dump(self):
|
||||
# Three 8-bit components in the ROMM-RGB colourspace, encapsulated in a
|
||||
|
|
@ -3580,7 +3580,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
|
||||
self.assertEqual(len(jp2.box[3].box[1].icc_profile), 546)
|
||||
self.assertIsNone(jp2.box[3].box[1].color_space)
|
||||
self.assertIsNone(jp2.box[3].box[1].colorspace)
|
||||
|
||||
# Jp2 Header
|
||||
# Colour specification
|
||||
|
|
@ -3588,7 +3588,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[2].precedence, 1)
|
||||
self.assertEqual(jp2.box[3].box[2].approximation, 1) # JPX exact
|
||||
self.assertIsNone(jp2.box[3].box[2].icc_profile)
|
||||
self.assertEqual(jp2.box[3].box[2].color_space,
|
||||
self.assertEqual(jp2.box[3].box[2].colorspace,
|
||||
glymur.core.ROMM_RGB)
|
||||
|
||||
def test_NR_file6_dump(self):
|
||||
|
|
@ -3626,7 +3626,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact
|
||||
self.assertIsNone(jp2.box[2].box[1].icc_profile)
|
||||
self.assertEqual(jp2.box[2].box[1].color_space,
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace,
|
||||
glymur.core.GREYSCALE)
|
||||
|
||||
def test_NR_file7_dump(self):
|
||||
|
|
@ -3675,7 +3675,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
|
||||
self.assertEqual(len(jp2.box[3].box[1].icc_profile), 13332)
|
||||
self.assertIsNone(jp2.box[3].box[1].color_space)
|
||||
self.assertIsNone(jp2.box[3].box[1].colorspace)
|
||||
|
||||
# Jp2 Header
|
||||
# Colour specification
|
||||
|
|
@ -3683,7 +3683,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[2].precedence, 1)
|
||||
self.assertEqual(jp2.box[3].box[2].approximation, 1) # JPX exact
|
||||
self.assertIsNone(jp2.box[3].box[2].icc_profile)
|
||||
self.assertEqual(jp2.box[3].box[2].color_space,
|
||||
self.assertEqual(jp2.box[3].box[2].colorspace,
|
||||
glymur.core.E_SRGB)
|
||||
|
||||
def test_NR_file8_dump(self):
|
||||
|
|
@ -3724,7 +3724,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 1) # JPX exact
|
||||
self.assertEqual(len(jp2.box[2].box[1].icc_profile), 414)
|
||||
self.assertIsNone(jp2.box[2].box[1].color_space)
|
||||
self.assertIsNone(jp2.box[2].box[1].colorspace)
|
||||
|
||||
# XML box
|
||||
tags = [x.tag for x in jp2.box[3].xml]
|
||||
|
|
@ -3796,7 +3796,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[3].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[3].approximation, 1) # JPX exact
|
||||
self.assertIsNone(jp2.box[2].box[3].icc_profile)
|
||||
self.assertEqual(jp2.box[2].box[3].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2.box[2].box[3].colorspace, glymur.core.SRGB)
|
||||
|
||||
def test_NR_00042_j2k_dump(self):
|
||||
# Profile 3.
|
||||
|
|
@ -5272,7 +5272,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 0) # not allowed?
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
c = jp2.box[3].main_header
|
||||
|
||||
|
|
@ -5405,7 +5405,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
c = jp2.box[3].main_header
|
||||
|
||||
|
|
@ -5533,7 +5533,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.YCC)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.YCC)
|
||||
|
||||
c = jp2.box[3].main_header
|
||||
|
||||
|
|
@ -5673,7 +5673,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[1].method, 1) # enumerated
|
||||
self.assertEqual(jp2.box[3].box[1].precedence, 2)
|
||||
self.assertEqual(jp2.box[3].box[1].approximation, 1) # exact
|
||||
self.assertEqual(jp2.box[3].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
# Jp2 Header
|
||||
# Palette box.
|
||||
|
|
@ -5784,7 +5784,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
# Skip the 4th box, it is uknown.
|
||||
|
||||
|
|
@ -5884,7 +5884,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[1].method, 1) # ICC
|
||||
self.assertEqual(jp2.box[3].box[1].precedence, 2)
|
||||
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
|
||||
self.assertEqual(jp2.box[3].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
c = jp2.box[4].main_header
|
||||
|
||||
|
|
@ -5981,7 +5981,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.GREYSCALE)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.GREYSCALE)
|
||||
|
||||
# Jp2 Header
|
||||
# Channel Definition
|
||||
|
|
@ -6100,7 +6100,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[1].method, 1) # enumerated
|
||||
self.assertEqual(jp2.box[3].box[1].precedence, 2)
|
||||
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
|
||||
self.assertEqual(jp2.box[3].box[1].color_space, glymur.core.CMYK)
|
||||
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.CMYK)
|
||||
|
||||
# Jp2 Header
|
||||
# Palette box.
|
||||
|
|
@ -6214,7 +6214,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[1].method, 1) # enumerated
|
||||
self.assertEqual(jp2.box[3].box[1].precedence, 2)
|
||||
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
|
||||
self.assertEqual(jp2.box[3].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2.box[3].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
# Jp2 Header
|
||||
# Palette box.
|
||||
|
|
@ -6322,7 +6322,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].method, 1)
|
||||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.YCC)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.YCC)
|
||||
|
||||
c = jp2.box[3].main_header
|
||||
|
||||
|
|
@ -6427,7 +6427,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
|
||||
self.assertEqual(len(jp2.box[2].box[1].icc_profile), 1)
|
||||
self.assertIsNone(jp2.box[2].box[1].color_space)
|
||||
self.assertIsNone(jp2.box[2].box[1].colorspace)
|
||||
|
||||
c = jp2.box[3].main_header
|
||||
|
||||
|
|
@ -6523,7 +6523,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 0) # JP2
|
||||
self.assertEqual(len(jp2.box[2].box[1].icc_profile), 1)
|
||||
self.assertIsNone(jp2.box[2].box[1].color_space)
|
||||
self.assertIsNone(jp2.box[2].box[1].colorspace)
|
||||
|
||||
c = jp2.box[3].main_header
|
||||
|
||||
|
|
@ -6625,7 +6625,7 @@ class TestSuite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[3].box[1].precedence, 2)
|
||||
self.assertEqual(jp2.box[3].box[1].approximation, 1) # JPX exact
|
||||
self.assertEqual(len(jp2.box[3].box[1].icc_profile), 1328)
|
||||
self.assertIsNone(jp2.box[3].box[1].color_space)
|
||||
self.assertIsNone(jp2.box[3].box[1].colorspace)
|
||||
|
||||
# UUID boxes. All mentioned in the RREQ box.
|
||||
self.assertEqual(jp2.box[2].vendor_feature[0], jp2.box[4].uuid)
|
||||
|
|
|
|||
|
|
@ -693,7 +693,7 @@ class TestSuiteWrite(unittest.TestCase):
|
|||
self.assertEqual(jp2.box[2].box[1].precedence, 0)
|
||||
self.assertEqual(jp2.box[2].box[1].approximation, 0)
|
||||
self.assertIsNone(jp2.box[2].box[1].icc_profile)
|
||||
self.assertEqual(jp2.box[2].box[1].color_space, glymur.core.SRGB)
|
||||
self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.SRGB)
|
||||
|
||||
c = jp2.box[3].main_header
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue