Metadata-Version: 2.2
Name: sprite-splitter
Version: 0.0.3
Summary: A sprite image splitter for rgba format image.
Author-email: Binimation <your.email@example.com>
License: MIT License
        
        Copyright (c) 2024 Intro1997
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
Project-URL: Homepage, https://github.com/Intro1997/SpriteSplitter
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: Pillow~=10.4.0

# SpriteSplitter

## Description

A sprite image splitter for rgba format image.

Install with

```shell
pip install sprite-splitter
```

More detail please see [pypi](https://pypi.org/project/sprite-splitter/).

## Usage

```python
from tools.sprite_splitter import AlphaSpriteSplitter, SplitterAlgorithm

img_path = "test/assets/multiple_test0.png"
splitter = AlphaSpriteSplitter(img_path)
box_border_color = (255, 0, 0, 255)
# default is SplitterAlgorithm.SPRITE_SCAN
splitter.show_split_result(box_border_color, SplitterAlgorithm.EDGE_DETECT)
```

Please refer to [here](./docs/usage.md)

## Performance

Platform: Python 3.12.7
CPU: Mac M3 Max

### EDGE DETECT

| image                                  | split time                  |
| -------------------------------------- | --------------------------- |
| assets/multiple_test0.png(104 x 113)   | 0.25486283301142976 seconds |
| assets/multiple_test1.png(2048 x 2048) | 2.9249990829848684 seconds  |
| assets/multiple_test2.png(1024 x 512)  | 1.142435582994949 seconds   |
| assets/tmp.png(1024 x 1024)            | 2.3546547499718145 seconds  |

### SPRITE SCAN

| image                                  | split time                  |
| -------------------------------------- | --------------------------- |
| assets/multiple_test0.png(104 x 113)   | 0.19917637499747798 seconds |
| assets/multiple_test1.png(2048 x 2048) | 0.8949957919539884 seconds  |
| assets/multiple_test2.png(1024 x 512)  | 0.3498120000003837 seconds  |
| assets/tmp.png(1024 x 1024)            | 0.6984633749816567 seconds  |

# Execution Result

See [here](./docs/result.md)

# Disclaimer

All downloads and use of the software (SpriteSplitter) are considered to have been carefully read and fully agreed to the following terms:

The software (SpriteSplitter) is provided solely for personal learning and communication purposes. It is strictly prohibited to use it for commercial or malicious purposes.

If any commercial use or malicious behavior is discovered, the author of the software (SpriteSplitter) reserves the right to revoke the usage rights.

All risks associated with the use of this software shall be borne solely by the user. The author of the software (SpriteSplitter) shall not be held responsible for any consequences.

Except for the service terms specified in the software (SpriteSplitter), the author shall not be liable for any accidents, negligence, contract breaches, defamation, copyright or other intellectual property infringements, or any losses caused by improper use of the software.

The author of the software (SpriteSplitter) shall not be responsible for any service interruptions or defects caused by force majeure, hacker attacks, communication line interruptions, or other uncontrollable factors that prevent normal use. However, the author will make every effort to minimize the losses or impacts caused to users.

Any issues not covered in this disclaimer shall be governed by the relevant national laws and regulations. In the event of any conflict between this disclaimer and national laws and regulations, the latter shall prevail.

The copyright of this disclaimer, as well as the rights to modify, update, and ultimately interpret it, belong solely to the author of the software (SpriteSplitter).
