def __repr__(self): return "ImageResource(%r %s, %r, %s)" % ( self.resource_id, ImageResourceID.name_of(self.resource_id), self.name, trimmed_repr(self.data), )
def image_resource_blocks(self): """Returns dict of the underlying image resource blocks.""" if not self._image_resource_blocks: self._image_resource_blocks = { ImageResourceID.name_of(block.resource_id).lower(): block.data for block in self.decoded_data.image_resource_blocks } return self._image_resource_blocks
def _repr_pretty_(self, p, cycle): if cycle: p.text(repr(self)) else: with p.group(0, 'ImageResource(', ')'): p.text("%r %s, %r, " % ( self.resource_id, ImageResourceID.name_of(self.resource_id), self.name )) if isinstance(self.data, bytes): p.text(trimmed_repr(self.data)) else: p.pretty(self.data)
def image_resource_blocks(self): """ Returns dict of the underlying image resource blocks. See :py:mod:`psd_tools.decoder.image_resources` :rtype: `dict` """ if not self._image_resource_blocks: self._image_resource_blocks = { ImageResourceID.name_of(block.resource_id).lower(): block.data for block in self.decoded_data.image_resource_blocks } return self._image_resource_blocks
def _read_block(fp, encoding): """ Reads single image resource block. Such blocks contain non-pixel data for the images (e.g. pen tool paths). """ sig = fp.read(4) if not sig in (b'8BIM', b'MeSa'): raise Error("Invalid resource signature (%r)" % sig) resource_id = read_fmt("H", fp)[0] name = read_pascal_string(fp, encoding, 2) data_size = pad(read_fmt("I", fp)[0], 2) if not data_size: logger.debug( "Found image resource with no data (%d %s). Dropping..." % ( resource_id, ImageResourceID.name_of(resource_id) )) return None data = fp.read(data_size) return ImageResource(resource_id, name, data)
def __repr__(self): return "ImageResource(%r %s, %r, %s)" % ( self.resource_id, ImageResourceID.name_of( self.resource_id), self.name, trimmed_repr(self.data))