Decoding of Heroes Might of Magic III files
Project description
homm3data
Decoding of Heroes Might of Magic III files
Installation
Library can be installed with PIP:
pip install homm3data
Examples
Saving all frames from def file as png files:
from homm3data import deffile
with deffile.open('path/to/deffile.def') as d:
for group in d.get_groups():
for frame in range(d.get_frame_count(group)):
img = d.read_image('combined', group, frame)
img.save('path/to/image_group%d_frame%d.png' % (group, frame))
Extracting image from pcx inside lod file:
from homm3data import pcxfile, lodfile
with lodfile.open('path/to/h3bitmap.lod') as lod:
data = lod.get_file("aishield.pcx")
if pcxfile.is_pcx(data):
pcxfile.read_pcx(data).save('path/to/image.png')
Extracting image from pak file (Heroes III HD):
from homm3data import pakfile
with pakfile.open("path/to/sprite_DXT_com_x3.pak") as pak:
img = pak.get_image("AVWIMPX0", "AVWIMPX1")
img.save('path/to/image.png')
Extracting text from H3 demo:
import urllib.request
import tarfile
from io import BytesIO
from homm3data import lodfile
url = "http://updates.lokigames.com/loki_demos/heroes3-demo.run"
contents = urllib.request.urlopen(url).read()
data = contents.split(b"END_OF_STUB\n", 1)[1]
with tarfile.open(fileobj=BytesIO(data), mode="r:gz") as tar:
with lodfile.open(tar.extractfile("data/demos/heroes3_demo/data/h3bitmap.lod")) as lod:
data = lod.get_file("GENRLTXT.TXT")
print(data.decode())
Tests
The tests needs innoextract installed on system (may needs to be inside PATH variable).
API
The API for the library is described here.
License
Library is released under MIT license.
Some parts of code are based on lodextract from josch. Originally published under GPL. Josch kindly gave me permission (via e-mail) to use the code under MIT as well. Thanks a lot!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file homm3data-0.1.12.tar.gz.
File metadata
- Download URL: homm3data-0.1.12.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60b6d2b55a40173552533226db1a6e86240d303a1ec87370dfb5e944204101be
|
|
| MD5 |
0ccdcdf4869eb2d3a5c4713c0c5d8a87
|
|
| BLAKE2b-256 |
61b989109407200c837623ad4fe79a0896c791cc4c0e6cec55256ceeab492203
|
File details
Details for the file homm3data-0.1.12-py3-none-any.whl.
File metadata
- Download URL: homm3data-0.1.12-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ed107fd774300d343002ccf926ffdfb6cd69fb1a0a113e716ae25648c6f5c69
|
|
| MD5 |
378a34a76715ab9e5796f2c45a6ea76e
|
|
| BLAKE2b-256 |
bd633ee20ad5e35444f90d246f1cf920ed330caf0cad0cadff6d6a4d4842cdef
|