Skip to main content

Azur Lane painting reconstructor/extractor.

Project description

azurpaint

PyPI supported Python versions MIT

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/*.obb to new folder
  • copy AssetBundles from /Android/data/com.YoStarEN.AzurLane/files/AssetBundles

[!NOTE] only painting, paintings and paintingface folder are required from 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')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

azurpaint-1.0.4.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

azurpaint-1.0.4-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file azurpaint-1.0.4.tar.gz.

File metadata

  • Download URL: azurpaint-1.0.4.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for azurpaint-1.0.4.tar.gz
Algorithm Hash digest
SHA256 94f65a653f0922f73b42032da268190de5f3668c49b75bfce54fbd919da46dab
MD5 e7d7362703a74cade9f146c5b2a42ad6
BLAKE2b-256 3998389969b15a64e1bcbc18ddcd9cf5bd2b85d620d922f65059e19ce82ead82

See more details on using hashes here.

File details

Details for the file azurpaint-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: azurpaint-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for azurpaint-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8f708045e9a287a420acd077333db3130413a6c94757e059e5b2514385c2b48f
MD5 470b9a258829839cc1132c7bb4ccc56b
BLAKE2b-256 a5e7c20465181e51769b9e93fc091b664574f82497133a7982514f61dbc6ccbd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page