mrcrowbar.lib.images.base module¶
-
class
mrcrowbar.lib.images.base.CodecImage(parent, source, width=None, height=None, frame_count=1, format=None, mode=None)[source]¶ Bases:
mrcrowbar.lib.images.base.ImageClass for viewing image data encoded in a standard image file format.
-
ansi_format_iter(x_start=0, y_start=0, width=None, height=None, frame=0, columns=1, downsample=1)[source]¶ Return the ANSI escape sequence to render the image.
- x_start
- Offset from the left of the image data to render from. Defaults to 0.
- y_start
- Offset from the top of the image data to render from. Defaults to 0.
- width
- Width of the image data to render. Defaults to the image width.
- height
- Height of the image data to render. Defaults to the image height.
- frame
- Single frame number, or a list of frame numbers to render in sequence. Defaults to frame 0.
- columns
- Number of frames to render per line (useful for printing tilemaps!). Defaults to 1.
- downsample
- Shrink larger images by printing every nth pixel only. Defaults to 1.
-
format¶
-
mode¶
-
-
class
mrcrowbar.lib.images.base.Colour(source_data=None, parent=None, preload_attrs=None, endian=None, cache_bytes=False, path_hint=None)[source]¶ Bases:
mrcrowbar.colour.BaseColour,mrcrowbar.blocks.BlockBase class for Blocks.
- source_data
- Source data to construct Block with. Can be a byte string, dictionary of attribute: value pairs, or another Block object.
- parent
- Parent Block object where this Block is defined. Used for e.g. evaluating Refs.
- preload_attrs
- Attributes on the Block to set before importing the data. Used for linking in dependencies before loading.
- endian
- Platform endianness to use when interpreting the Block data. Useful for Blocks which have the same data layout but different endianness for stored numbers. Has no effect on fields with an predefined endianness.
- cache_bytes
- Cache the bytes equivalent of the Block. Useful for debugging the loading procedure. Defaults to False.
- path_hint
- Cache a string containing the path of the current Block, relative to the root.
-
class
mrcrowbar.lib.images.base.Image(parent, source, width, height, frame_count=1)[source]¶ Bases:
mrcrowbar.views.View-
frame_count¶
-
height¶
-
source¶
-
width¶
-
-
class
mrcrowbar.lib.images.base.IndexedImage(parent, source, width, height, frame_count=1, palette=[<mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>, <mrcrowbar.colour.BaseColour object>], mask=None)[source]¶ Bases:
mrcrowbar.lib.images.base.ImageClass for viewing indexed (palette-based) chunky image data.
-
ansi_format_iter(x_start=0, y_start=0, width=None, height=None, frame=0, columns=1, downsample=1, frame_index=None, frame_flip_v=0, frame_flip_h=0)[source]¶ Return the ANSI escape sequence to render the image.
- x_start
- Offset from the left of the image data to render from. Defaults to 0.
- y_start
- Offset from the top of the image data to render from. Defaults to 0.
- width
- Width of the image data to render. Defaults to the image width.
- height
- Height of the image data to render. Defaults to the image height.
- frame
- Single frame number/object, or a list of frames to render in sequence. Defaults to frame 0.
- columns
- Number of frames to render per line (useful for printing tilemaps!). Defaults to 1.
- downsample
- Shrink larger images by printing every nth pixel only. Defaults to 1.
- frame_index
- Constant or mrc.Ref for a frame object property denoting the index. Defaults to None (i.e. frame itself should be an index).
- frame_flip_v
- Constant or mrc.Ref for a frame object property for whether to mirror vertically. Defaults to 0.
- frame_flip_h
- Constant or mrc.Ref for a frame object property for whether to mirror horizontally. Defaults to 0.
-
mask¶
-
palette¶
-
repr¶
-
-
class
mrcrowbar.lib.images.base.Palette(block_klass, offset, block_kwargs=None, count=None, fill=None, **kwargs)[source]¶ Bases:
mrcrowbar.fields.BlockField
-
class
mrcrowbar.lib.images.base.Planarizer(bpp: int, width: int = None, height: int = None, plane_size: int = None, plane_padding: int = 0, frame_offset: int = 0, frame_stride: int = None, frame_count: int = 1, row_planar_size: int = None, plane_order=None)[source]¶ Bases:
mrcrowbar.transforms.TransformCreate a Planarizer instance.
- bpp
- Bits per pixel (aka. number of bitplanes).
- width
- Width of destination image in pixels.
- height
- Height of destination image in pixels.
- plane_size
- Size of the image data for a single plane in bytes. Default is (width*height//8). Can’t be specified if width or height are defined.
- plane_padding
- Additional bytes per plane not used in the chunky data.
- frame_offset
- Start of the first frame of data. The frame controls are useful for storing multiple image frames sequentially with seperate sets of bitplanes per frame. They aren’t required for multiple frames stored in the same larger set of bitplanes.
- frame_stride
- Bytes between the start of each frame. Default is bpp*(plane_size+plane_padding).
- frame_count
- Number of frames.
- row_planar_size
- Number of bytes per row-plane in a row-planar image. Default is to process a graphic-planar image without rows.
- plane_order
- List of integers describing how to order the bitplanes in chunky output, from least significant to most significant. Defaults to all planes sequential.
-
class
mrcrowbar.lib.images.base.RGBAColour(source_data=None, parent=None, preload_attrs=None, endian=None, cache_bytes=False, path_hint=None)[source]¶ Bases:
mrcrowbar.lib.images.base.ColourBase class for Blocks.
- source_data
- Source data to construct Block with. Can be a byte string, dictionary of attribute: value pairs, or another Block object.
- parent
- Parent Block object where this Block is defined. Used for e.g. evaluating Refs.
- preload_attrs
- Attributes on the Block to set before importing the data. Used for linking in dependencies before loading.
- endian
- Platform endianness to use when interpreting the Block data. Useful for Blocks which have the same data layout but different endianness for stored numbers. Has no effect on fields with an predefined endianness.
- cache_bytes
- Cache the bytes equivalent of the Block. Useful for debugging the loading procedure. Defaults to False.
- path_hint
- Cache a string containing the path of the current Block, relative to the root.
-
a_8= <UInt8: offset=0x3>¶
-
b_8= <UInt8: offset=0x2>¶
-
g_8= <UInt8: offset=0x1>¶
-
r_8= <UInt8: offset=0x0>¶
-
class
mrcrowbar.lib.images.base.RGBColour(source_data=None, parent=None, preload_attrs=None, endian=None, cache_bytes=False, path_hint=None)[source]¶ Bases:
mrcrowbar.lib.images.base.ColourBase class for Blocks.
- source_data
- Source data to construct Block with. Can be a byte string, dictionary of attribute: value pairs, or another Block object.
- parent
- Parent Block object where this Block is defined. Used for e.g. evaluating Refs.
- preload_attrs
- Attributes on the Block to set before importing the data. Used for linking in dependencies before loading.
- endian
- Platform endianness to use when interpreting the Block data. Useful for Blocks which have the same data layout but different endianness for stored numbers. Has no effect on fields with an predefined endianness.
- cache_bytes
- Cache the bytes equivalent of the Block. Useful for debugging the loading procedure. Defaults to False.
- path_hint
- Cache a string containing the path of the current Block, relative to the root.
-
b_8= <UInt8: offset=0x2>¶
-
g_8= <UInt8: offset=0x1>¶
-
r_8= <UInt8: offset=0x0>¶