SkillAgentSearch skills...

Tex2img

a texture decompression C++-extension for Python

Install / Use

/learn @K0lb3/Tex2img
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

tex2img

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

A texture decompression C++-extension for Python.

  1. Installation
  2. Notes
  3. Functions
  4. Sources

Installation

pip install tex2img

or download/clone the git and use

python setup.py install

Notes

  • etcpack causes a segfault on linux systems, so linux systems will use basisu under the hood for etc instead

Functions

All functions accept only args and aren't able to handle kwards atm.

basisu_decompress

Decompresses data to RGBA via basisu's unpack_block function.

Args: (compressed data: bytes, width: int, height: int, format: int)

Returns: bytes

Formats:

| Format | Mode | Note | |--------|------------------------------|-----------------------------------------------| | 0 | cETC1 | ETC1 | | 1 | cETC1S | ETC1(subset:diff colors only, no subblocks) | | 2 | cETC2_RGB | ETC2 color block | | 3 | cETC2_RGBA | ETC2 alpha block followed by ETC2 color block | | 4 | cETC2_ALPHA | ETC2 EAC alpha block | | 5 | cBC1 | DXT1 | | 6 | cBC3 | DXT5(DXT5A block followed by a DXT1 block) | | 7 | cBC4 | DXT5A | | 8 | cBC5 | 3DC / DXN(two DXT5A blocks) | | 9 | cBC7 | | | 10 | cASTC4x4 | | | 11 | cPVRTC1_4_RGB | | | 12 | cPVRTC1_4_RGBA | | | 13 | cATC_RGB | | | 14 | cATC_RGBA_INTERPOLATED_ALPHA | | | 15 | cFXT1_RGB | | | 16 | cPVRTC2_4_RGBA | | | 17 | cETC2_R11_EAC | | | 18 | cETC2_RG11_EAC | |

decompress_astc

Decompresses raw astc-compressed data to RGBA.

Args: (compressed data: bytes, image width: int, image height: int, block_width: int, block_height: int, isSRGB: False)

Returns: bytes

decompress_atc

Decompresses raw atc-compressed data to RGB(A).

Args: (compressed data: bytes, width: int, height: int, alpha: bool)

Returns: bytes

alpha = False for ATC_RGB alpha = True for ATC_RGBA

decompress_pvrtc

Decompresses raw pvrtc-compressed data to RGBA.

Args: (compressed data: bytes, width: int, height: int, do2bit_mode: 0)

Returns: bytes

decompress_etc

Decompresses raw etc-compressed data to RGB(A).

Args: (compressed data: bytes, width: int, height: int, format: int)

This function has a memory leak, so it might crash if you use it on too many images at once (~500+). The basisu_decompress function also supports the most common ETC formats, so it is a good alternative.

Formats:

| Format | Mode | |--------|----------------------------------| | 0 | ETC1_RGB_NO_MIPMAPS | | 1 | ETC2PACKAGE_RGB_NO_MIPMAPS | | 2 | ETC2PACKAGE_RGBA_NO_MIPMAPS_OLD | | 3 | ETC2PACKAGE_RGBA_NO_MIPMAPS | | 4 | ETC2PACKAGE_RGBA1_NO_MIPMAPS | | 5 | ETC2PACKAGE_R_NO_MIPMAPS | | 6 | ETC2PACKAGE_RG_NO_MIPMAPS | | 7 | ETC2PACKAGE_R_SIGNED_NO_MIPMAPS | | 8 | ETC2PACKAGE_RG_SIGNED_NO_MIPMAPS | | 9 | ETC2PACKAGE_sRGB_NO_MIPMAPS | | 10 | ETC2PACKAGE_sRGBA_NO_MIPMAPS | | 11 | ETC2PACKAGE_sRGBA1_NO_MIPMAPS |

crunch_get_texture_info

Retrieves texture information from the CRN file.

Args: (data: bytes)

Returns: dict

crunch_get_level_info

Retrieves mipmap level specific information from the CRN file.

Args: (data: bytes, mipmap_leve: int)

Returns: dict

crunch_unpack_level

Transcodes the specified mipmap level to a destination buffer.

Args: (data: bytes, mipmap_level: int)

Returns: bytes

Sources

ATC & ASTC

The complete BinomialLLC/basis_universal is used and supported. It's default for the ATC and ASTC decompression.

ETC

The whole source of Ericsson/ETCPACK is used for the ETC decompression.

PVRTC

PVRTDecompress.cpp and PVRTDecompress.h of powervr-graphics/Native_SDK are used for the PVRTC decompression.

crunch

A mixed version of BinomialLLC/crunch and Unity-Technologies/crunch is used.

The Unity fork doesn't yield correct results for the original modes, so the BiomialLLC version is used for all modes besides ETC, which was created byUnity.

View on GitHub
GitHub Stars15
CategoryDevelopment
Updated2y ago
Forks8

Languages

C++

Security Score

80/100

Audited on Mar 7, 2024

No findings