This commit is contained in:
jevans 2015-01-26 21:59:26 -05:00
commit 5f013fa785

View file

@ -1065,16 +1065,20 @@ class ContiguousCodestreamBox(Jp2kBox):
return msg.format(repr(self.codestream)) return msg.format(repr(self.codestream))
def __str__(self): def __str__(self):
msg = Jp2kBox.__str__(self) title = Jp2kBox.__str__(self)
if _printoptions['short'] is True: if _printoptions['short'] is True:
return msg return title
if _printoptions['codestream'] is False: if _printoptions['codestream'] is False:
return msg return title
lst = []
for segment in self.codestream.segment: for segment in self.codestream.segment:
msg += '\n' + self._indent(str(segment), indent_level=4) lst.append(str(segment))
return msg text = '\n'.join(lst)
text = self._indent(text)
text = '\n'.join([title, text])
return text
@classmethod @classmethod
def parse(cls, fptr, offset=0, length=0): def parse(cls, fptr, offset=0, length=0):
@ -1173,13 +1177,18 @@ class DataReferenceBox(Jp2kBox):
fptr.seek(end_pos) fptr.seek(end_pos)
def __str__(self): def __str__(self):
msg = Jp2kBox.__str__(self) title = Jp2kBox.__str__(self)
if _printoptions['short'] is True: if _printoptions['short'] is True:
return msg return title
lst = []
for box in self.DR: for box in self.DR:
msg += '\n ' + str(box) lst.append(str(box))
return msg text = '\n'.join(lst)
text = self._indent(text)
text = '\n'.join([title, text])
return text
def __repr__(self): def __repr__(self):
msg = 'glymur.jp2box.DataReferenceBox()' msg = 'glymur.jp2box.DataReferenceBox()'
@ -1276,17 +1285,22 @@ class FileTypeBox(Jp2kBox):
return msg return msg
def __str__(self): def __str__(self):
msg = Jp2kBox.__str__(self) title = Jp2kBox.__str__(self)
if _printoptions['short'] is True: if _printoptions['short'] is True:
return msg return title
lst = [msg, lst = []
' Brand: {0}', text = 'Brand: {0}'.format(self.brand)
' Compatibility: {1}'] lst.append(text)
msg = '\n'.join(lst) text = 'Compatibility: {0}'.format(self.compatibility_list)
msg = msg.format(self.brand, self.compatibility_list) lst.append(text)
return msg text = '\n'.join(lst)
text = self._indent(text)
text = '\n'.join([title, text])
return text
def _validate(self, writing=False): def _validate(self, writing=False):
"""Validate the box before writing to file.""" """Validate the box before writing to file."""
@ -1408,19 +1422,24 @@ class FragmentListBox(Jp2kBox):
return msg return msg
def __str__(self): def __str__(self):
msg = Jp2kBox.__str__(self) title = Jp2kBox.__str__(self)
if _printoptions['short'] is True: if _printoptions['short'] is True:
return msg return title
lst = []
for j in range(len(self.fragment_offset)): for j in range(len(self.fragment_offset)):
msg += "\n Offset {0}: {1}" text = "Offset {0}: {1}".format(j, self.fragment_offset[j])
msg += "\n Fragment Length {2}: {3}" lst.append(text)
msg += "\n Data Reference {4}: {5}" text = "Fragment Length {0}: {1}".format(j,
msg = msg.format(j, self.fragment_offset[j], self.fragment_length[j])
j, self.fragment_length[j], lst.append(text)
j, self.data_reference[j]) text = "Data Reference {0}: {1}".format(j, self.data_reference[j])
lst.append(text)
return msg text = '\n'.join(lst)
text = self._indent(text)
text = '\n'.join([title, text])
return text
def write(self, fptr): def write(self, fptr):
"""Write a fragment list box to file. """Write a fragment list box to file.
@ -1570,11 +1589,7 @@ class FreeBox(Jp2kBox):
return msg return msg
def __str__(self): def __str__(self):
msg = Jp2kBox.__str__(self) return Jp2kBox.__str__(self)
if _printoptions['short'] is True:
return msg
return msg
@classmethod @classmethod
def parse(cls, fptr, offset, length): def parse(cls, fptr, offset, length):
@ -1666,23 +1681,34 @@ class ImageHeaderBox(Jp2kBox):
return msg return msg
def __str__(self): def __str__(self):
msg = Jp2kBox.__str__(self) title = Jp2kBox.__str__(self)
if _printoptions['short'] is True: if _printoptions['short'] is True:
return msg return title
msg = "{0}" lst = []
msg += '\n Size: [{1} {2} {3}]'
msg += '\n Bitdepth: {4}' text = 'Size: [{0} {1} {2}]'
msg += '\n Signed: {5}' text = text.format(self.height, self.width, self.num_components)
msg += '\n Compression: {6}' lst.append(text)
msg += '\n Colorspace Unknown: {7}'
msg = msg.format(Jp2kBox.__str__(self), text = 'Bitdepth: {0}'.format(self.bits_per_component)
self.height, self.width, self.num_components, lst.append(text)
self.bits_per_component,
self.signed, text = 'Signed: {0}'.format(self.signed)
'wavelet' if self.compression == 7 else 'unknown', lst.append(text)
self.colorspace_unknown)
return msg text = 'Compression: {0}'
text = text.format('wavelet' if self.compression == 7 else 'unknown')
lst.append(text)
text = 'Colorspace Unknown: {0}'.format(self.colorspace_unknown)
lst.append(text)
text = '\n'.join(lst)
text = self._indent(text)
text = '\n'.join([title, text])
return text
def write(self, fptr): def write(self, fptr):
"""Write an Image Header box to file. """Write an Image Header box to file.
@ -1897,14 +1923,16 @@ class JPEG2000SignatureBox(Jp2kBox):
return 'glymur.jp2box.JPEG2000SignatureBox()' return 'glymur.jp2box.JPEG2000SignatureBox()'
def __str__(self): def __str__(self):
msg = Jp2kBox.__str__(self) title = Jp2kBox.__str__(self)
if _printoptions['short'] is True: if _printoptions['short'] is True:
return msg return title
msg += '\n Signature: {0:02x}{1:02x}{2:02x}{3:02x}' body = 'Signature: {0:02x}{1:02x}{2:02x}{3:02x}'
msg = msg.format(self.signature[0], self.signature[1], body = body.format(self.signature[0], self.signature[1],
self.signature[2], self.signature[3]) self.signature[2], self.signature[3])
return msg body = self._indent(body)
text = '\n'.join([title, body])
return text
def write(self, fptr): def write(self, fptr):
"""Write a JPEG 2000 Signature box to file. """Write a JPEG 2000 Signature box to file.
@ -1986,12 +2014,15 @@ class PaletteBox(Jp2kBox):
return msg return msg
def __str__(self): def __str__(self):
msg = Jp2kBox.__str__(self) title = Jp2kBox.__str__(self)
if _printoptions['short'] is True: if _printoptions['short'] is True:
return msg return title
msg += '\n Size: ({0} x {1})'.format(*self.palette.shape) body = 'Size: ({0} x {1})'.format(*self.palette.shape)
return msg body = self._indent(body)
text = '\n'.join([title, body])
return text
def write(self, fptr): def write(self, fptr):
"""Write a Palette box to file. """Write a Palette box to file.
@ -2235,25 +2266,47 @@ class ReaderRequirementsBox(Jp2kBox):
return msg return msg
def __str__(self): def __str__(self):
msg = Jp2kBox.__str__(self) title = Jp2kBox.__str__(self)
if _printoptions['short'] is True: if _printoptions['short'] is True:
return msg return title
msg += '\n Fully Understands Aspect Mask: 0x{0:x}' lst = []
msg = msg.format(self.fuam)
msg += '\n Display Completely Mask: 0x{0:x}'.format(self.dcm)
msg += '\n Standard Features and Masks:' text = 'Fully Understands Aspect Mask: 0x{0:x}'.format(self.fuam)
lst.append(text)
text = 'Display Completely Mask: 0x{0:x}'.format(self.dcm)
lst.append(text)
text = 'Standard Features and Masks:'
lst.append(text)
lst2 = []
for j in range(len(self.standard_flag)): for j in range(len(self.standard_flag)):
args = (self.standard_flag[j], self.standard_mask[j], args = (self.standard_flag[j], self.standard_mask[j],
_READER_REQUIREMENTS_DISPLAY[self.standard_flag[j]]) _READER_REQUIREMENTS_DISPLAY[self.standard_flag[j]])
msg += '\n Feature {0:03d}: 0x{1:x} {2}'.format(*args) text = 'Feature {0:03d}: 0x{1:x} {2}'.format(*args)
lst2.append(text)
text = '\n'.join(lst2)
text = self._indent(text)
lst.append(text)
msg += '\n Vendor Features:' text = 'Vendor Features:'
lst.append(text)
lst2 = []
for j in range(len(self.vendor_feature)): for j in range(len(self.vendor_feature)):
msg += '\n UUID {0}'.format(self.vendor_feature[j]) text = 'UUID {0}'.format(self.vendor_feature[j])
lst2.append(text)
text = '\n'.join(lst2)
text = self._indent(text)
lst.append(text)
return msg text = '\n'.join(lst)
text = self._indent(text)
text = '\n'.join([title, text])
return text
@classmethod @classmethod
def parse(cls, fptr, offset, length): def parse(cls, fptr, offset, length):