Skip to main content

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')

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.5.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.5-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: azurpaint-1.0.5.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.5.tar.gz
Algorithm Hash digest
SHA256 826334623669180699c7ea2e3a661398d0ff9039f7a15df085b89061797916ba
MD5 aae4add66ab53297b52c0883378e83ba
BLAKE2b-256 f419b9ed6470215d2ade8b3018d453956ca2b34860bc7867e2244295ee8745db

See more details on using hashes here.

File details

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

File metadata

  • Download URL: azurpaint-1.0.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9e87524630fbdb7ea7347b0c6e87aa1608a1803a74740f72e25e6373acb8cd00
MD5 d87dfb0ad0817a828a3be3e37a649c3a
BLAKE2b-256 568825c032c35e5bd4c17ee8af50c304d5b6c23193cc1a4bc7024e9c0bdf6726

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.6

2 files

This release

1.0.5 This release

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

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