azurpaint
Azur Lane painting reconstructor/extractor.
Install
Python 3.9.0 or higher is required
pip install azurpaint
Usage
Simple example to extract painting
- create new folder
- get and extract
/Android/obb/com.YoStarEN.AzurLane/*.obbto new folder - copy
AssetBundlesfrom/Android/data/com.YoStarEN.AzurLane/files/AssetBundles
from pathlib import Path
from azurpaint import Azurpaint
from azurpaint.exception import PrefabNotFound
# extract painting with default expression/face
def extract(asset_bundle_path, prefab_path):
try:
azurpaint = Azurpaint(asset_bundle_path, prefab_path)
# search dependencies automatically within AssetBundles (root)
# this is still in experimental mode so far on testing the result is good
# load_dependencies only searching in local file and it doesn't know
# if there any missing dependency it doesn't know what file it is
# so you should provide complete asset include extracted OBB before running this
azurpaint.load_dependencies()
# PIL.Image.Image
return azurpaint.create()
except PrefabNotFound:
print(f"{prefab_path} is not an prefab.")
# extract painting with all face/expression into output_dir
def extract_all_face(asset_bundle_path, prefab_path, output_dir):
try:
azurpaint = Azurpaint(asset_bundle_path, prefab_path)
azurpaint.load_dependencies()
Path(output_dir).mkdir(parents=True, exist_ok=True)
azurpaint.create().save(Path(output_dir, f"{azurpaint.prefab.name}-default.png"))
for face in azurpaint.face_list:
azurpaint.change_face(face)
azurpaint.create().save(Path(output_dir, f"{azurpaint.prefab.name}-{face}.png"))
except PrefabNotFound:
print(f"{prefab_path} is not an prefab.")
if __name__ == '__main__':
# azurpaint require asset that have .prefab
# will raise PrefabNotFound if file is not an prefab
extract('path_to/AssetBundles', 'painting/tashigan')
Metadata
Release files for azurpaint 1.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| azurpaint-1.0.6.tar.gz | 14.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| azurpaint-1.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.8 kB
Release files / azurpaint-1.0.6.tar.gz
| Download URL | azurpaint-1.0.6.tar.gz |
|---|---|
| Size | 14.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
88d68b7cdf307cb378bea49a0b0e52019b335e2437e7e9f9aab15a72cda3b06e
|
|
BLAKE2b-256 checksum How to use checksums |
f1c6e785a39067999124385468f540296d664202f581edf9ef642a5f1a7f6cad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / azurpaint-1.0.6-py3-none-any.whl
| Download URL | azurpaint-1.0.6-py3-none-any.whl |
|---|---|
| Size | 15.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
269e3bc8b0aac2cb7e037c255c4de48b887d8ff588c483419d8b4d5e5b0030f2
|
|
BLAKE2b-256 checksum How to use checksums |
34293b39e89e641a4854ab33b04f9791a0a8b444835d11426cb73143c51f6603
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|