summaryrefslogblamecommitdiff
path: root/mobs.py
blob: d235fd3421f95c38fd113ade11603de78a931bc8 (plain) (tree)




























                                                
                                                                   











                                 





















































                                                                                                               
#!/usr/bin/python3

import os, subprocess

try:
    from PIL import Image # I hate you
except ImportError:
    import cv2

pwd = os.getcwd()
f = open("ATTR.txt", "w")
bf1=[];bf2=[]

for it in os.listdir(pwd + "/ready-mobs"):
    if not it.endswith("png"):
        continue

    name = it.split(".")[0]
    path = pwd + "/ready-mobs/"

    try:
        mobid = int(name)
    except:
        print("ERROR: %s is not parseable" % it)
        continue

    print("%s" % it)

    # Get image size
    # This is not needed; ImageMagick fixes aspect ratio on its own
    try:
        img = Image.open(path+it)
        w = img.width
        h = img.height
    except:
        img = cv2.imread(path+it)
        h, w = img.shape[:2]

    # Type 1 convertion
    # Max: 420x600
    w5 = int(w); h5 = int(h)

    # We resize based on "best dimension"
    # Relies on Python 3 division behavior
    if (w / h) >= 1:
        # Width is the better one
        h5 += ((420-w) * h) / w # As float
        w5 = 420
    else:
        # Height is the better one
        w5 += ((600-h) * w) / h # As float
        h5 = 600

    # Forced sanitization
    w5 = min(w5, 420)
    h5 = min(h5, 600)

    # Convert
    subprocess.call("convert %s/%s -resize %dx%d %s/95%04d.webp" % (path, it, w5, h5, path, mobid), shell=True)

    # Prepare the "BOSS" dimension
    # 2200 x 1800
    w6 = int(w); h6 = int(h)
    # We resize based on "best dimension"
    # Relies on Python 3 division behavior
    if (w / h) >= 1:
        # Width is the better one
        h6 += ((2200-w) * h) / w # As float
        w6 = 2200
    else:
        # Height is the better one
        w6 += ((1800-h) * w) / h # As float
        h6 = 1800

    # Forced sanitization
    w6 = min(w6, 2200)
    h6 = min(h6, 1800)

    # Convert
    subprocess.call("convert %s/%s -resize %dx%d %s/96%04d.webp" % (path, it, w6, h6, path, mobid), shell=True)

    # Save
    bf1.append("\t95%04d NAME (AUTHOR)\t(CC BY SA)\t(SOURCE)\n" % (mobid))
    bf2.append("\t96%04d NAME (AUTHOR)\t(CC BY SA)\t(SOURCE)\n" % (mobid))

# Flush
for it in sorted(bf1):
    f.write(it)
f.write("\n")
for it in sorted(bf2):
    f.write(it)

f.close()
print("\n\n*************************")
subprocess.call("cat %s/ATTR.txt" % pwd, shell=True)