This commit is contained in:
John Evans 2013-06-06 08:33:31 -04:00
commit c979d22eeb
4 changed files with 37 additions and 37 deletions

View file

@ -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)

View file

@ -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.

View file

@ -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)

View file

@ -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