py3dst is a module that allows to read, edit and convert 3DST textures
You can use the latest stable release from PyPi
pip install py3dstOr install from the repository for latest changes but with the risk of unstability
pip install git+https://github.com/STBrian/py3dst.gitThe module has a simple command-line interface to perform certain tasks such as displaying the provided file on screen or other conversion tasks between formats
python -m py3dst -hThe previous command shows this help message
usage: py3dst [-h] [-c] [-r] [-f FORMAT] [-o OUT] [-v] [path]
Display or convert 3DST textures
positional arguments:
path path to file to open and show
options:
-h, --help show this help message and exit
-c, --convert indicates whether to convert the provided file
-r, --recursive convert files recursively in the directory
-f FORMAT, --format FORMAT
(optional) color format for the output ('rgba8', 'rgb8', 'rgba5551', 'rgb565', 'rgba4', 'la8', 'la4')
-o OUT, --output OUT destination file or directory if multiple output files
-v, --version show program's version number and exit
- RGBA8
- RGB8
- RGBA5551
- RGB565
- RGBA4
- LA8
- LA4
The open() function decodes and loads the texture at the provided path
from py3dst import Texture3dst
texture = Texture3dst().open("path/to/file")The new() function allows to create a blank new texture
from py3dst import Texture3dst
texture = Texture3dst().new(128, 128)new() takes 2 arguments: width, height
Optionally you can specify the 'mip_level' and 'format'
The export() function converts the data and writes the output data to the specified location
texture.export("path/to/out/file")The copy() function will create an output of PIL Image type that you can then export to other image format
image = texture.copy(0, 0, texture.size[0], texture.size[1])
image.save("path/to/out/image/")copy() takes 4 arguments: x1, y1, x2, y2
Being the coordinates that indicate the area to copy
The fromImage() function will take the PIL Image object and create a new texture with it. Example:
from py3dst import Texture3dst
from PIL import Image
image = Image.open("path/to/image/")
texture = Texture3dst().fromImage(image)fromImage() takes 1 argument: image
image must be a PIL.Image object