pyffi.formats.tga — Targa (.tga)

Implementation

class pyffi.formats.tga.TgaFormat

Bases: pyffi.object_models.xml.FileFormat

This class implements the TGA format.

class ColorMapType(**kwargs)

Bases: pyffi.object_models.xml.enum.EnumBase

An unsigned 8-bit integer, describing the color map type.

class FooterString(template=None, argument=None, parent=None)

Bases: pyffi.object_models.xml.basic.BasicBase

The Targa footer signature.

get_hash(data=None)

Return a hash value for the signature.

Returns:An immutable object that can be used as a hash.
get_size(data=None)

Return number of bytes that the signature occupies in a file.

Returns:Number of bytes.
get_value()

Get signature.

Returns:The signature.
read(stream, data)

Read signature from stream.

Parameters:stream (file) – The stream to read from.
set_value(value)

Set signature.

Parameters:value (str) – The value to assign.
write(stream, data)

Write signature to stream.

Parameters:stream (file) – The stream to read from.
class ImageType(**kwargs)

Bases: pyffi.object_models.xml.enum.EnumBase

An unsigned 8-bit integer, describing the image type.

PixelData

alias of UndecodedData

byte

alias of Byte

char

alias of Char

float

alias of Float

int

alias of Int

short

alias of Short

ubyte

alias of UByte

uint

alias of UInt

ushort

alias of UShort

Regression tests

Read a TGA file

>>> # check and read tga file
>>> import os
>>> from os.path import dirname
>>> dirpath = __file__
>>> for i in range(4): #recurse up to root repo dir
...     dirpath = dirname(dirpath)
>>> repo_root = dirpath
>>> format_root = os.path.join(repo_root, 'tests', 'formats', 'tga')
>>> file = os.path.join(format_root, 'test.tga').replace("\\", "/")
>>> stream = open(file, 'rb')
>>> data = TgaFormat.Data()
>>> data.inspect(stream)
>>> data.read(stream)
>>> stream.close()
>>> data.header.width
60
>>> data.header.height
20

Parse all TGA files in a directory tree

>>> for stream, data in TgaFormat.walkData(format_root):
...     try:
...         # the replace call makes the doctest also pass on windows
...         os_path = stream.name
...         split = (os_path.split(os.sep))[-4:]
...         rejoin = os.path.join(*split).replace("\\", "/")
...         print("reading %s" % rejoin)
...     except Exception:
...         print(
...             "Warning: read failed due corrupt file,"
...             " corrupt format description, or bug.") 
reading tests/formats/tga/test.tga
reading tests/formats/tga/test_footer.tga

Create a TGA file from scratch and write to file

>>> data = TgaFormat.Data()
>>> from tempfile import TemporaryFile
>>> stream = TemporaryFile()
>>> data.write(stream)
>>> stream.close()