/texture2ddecoder

a python wrapper for Perfare's Texture2DDecoder

Primary LanguageC++MIT LicenseMIT

texture2ddecoder

PyPI supported Python versions Win/Mac/Linux MIT Build Status Build Status (Github)

A python wrapper for Perfare's Texture2DDecoder

Some changes were made to the original code to make it cross-platform compatible.

  1. Installation
  2. Example
  3. Functions

Installation

pip install texture2ddecoder

or download/clone the git and use

python setup.py install

Example

import texture2ddecoder

# load sample data
data = open("astc_sample", "rb").read()

# decode data
width = 512
height = 512
block_width = block_height = 4

decoded_data= texture2ddecoder.decode_astc(data, width, height, block_width, block_height)

# load raw image data
dec_img = Image.frombytes("RGBA", (width, height), decoded_data, 'raw', ("BGRA"))

Functions

  • All functions accept only arguments, no keywords.
  • decode_pvrtc can cause segfaults on Mac OS

decode_bc1

decompresses bc1 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_bc3

decompresses bc3 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_pvrtc

decompresses pvrtc textures to BGRA

Params: bytes data, long width, long height, bool is2bpp Return: bytes

decode_etc1

decompresses etc1 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_etc2

decompresses etc2 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_etc2a1

decompresses etc2a1 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_etc2a8

decompresses etc2a8 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_eacr

decompresses eacr textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_eacr_signed

decompresses eacr_signed textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_eacrg

decompresses eacrg textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_eacrg_signed

decompresses eacrg_signed textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_bc4

decompresses bc4 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_bc5

decompresses bc5 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_bc6

decompresses bc6 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_bc7

decompresses bc7 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_atc_rgb4

decompresses atc_rgb4 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_atc_rgba8

decompresses atc_rgba8 textures to BGRA

Params: bytes data, long width, long height Return: bytes

decode_astc

decompresses astc textures to BGRA

Params: bytes data, long width, long height, int block_width, int block_height Return: bytes

unpack_crunch

decompresses crunch textures to BGRA

Params: bytes data Return: bytes

unpack_unity_crunch

decompresses unity_crunch textures to BGRA

Params: bytes data Return: bytes

License & Credits

This module itself is licensed under MIT.

The texture compression codecs themselves were derived on following sources and therefore have following licenses:

Codec License Source
ATC MIT Perfare/AssetStudio - Texture2DDecoderNative/atc.cpp
ASTC MIT Ishotihadus/mikunyan - ext/decoders/native/astc.c
BCn MIT Perfare/AssetStudio - Texture2DDecoderNative/bcn.cpp
ETC MIT Ishotihadus/mikunyan - ext/decoders/native/etc.c
f16 MIT Maratyszcza/FP16
PVRTC MIT Ishotihadus/mikunyan - ext/decoders/native/pvrtc.c
Crunch PUBLIC DOMAIN BinomialLLC/crunch
Crunch (Unity) ZLIB Unity-Technologies/crunch