import os, sys
from os import listdir
from os.path import isfile, join
import PIL
from PIL import Image
from PIL import ImageOps
import subprocess
import time
import argparse
def main():
#size = 184, 138
#size2 = 216, 120
# Usage: --size [filesize] --path [imgpath]
# Handle command line arguments for the script
parser = argparse.ArgumentParser(description='Convert image files to file size and 15 colours for SGDK.')
parser.add_argument('--size', help='Target size of images...')
parser.add_argument('--path', help='Path of images convert...')
if len(sys.argv)==1:
parser.print_help()
sys.exit(1)
# Parse arguments into namespace object to reference later in the script
global args
args = parser.parse_args()
size = args.size
print(size)
path = args.path
print(path)
resizedOutputPath = path + "\\Resized\\"
inputPath = path + "\\"
outputPath = path + "\\Gimped\\"
outputPath2 = outputPath.replace("\\", "\\\\")
outputPath3 = outputPath.replace("\\", "\\\\")
try:
if not os.path.exists(resizedOutputPath):
os.makedirs(resizedOutputPath)
except IOError as e:
print(e)
try:
if not os.path.exists(outputPath):
os.makedirs(outputPath)
except IOError as e:
print(e)
files = [f for f in listdir(path) if isfile(join(path, f))]
for filename in files:
print('Processing File: ' + filename)
try:
basewidth = 216
img = Image.open(inputPath + filename)
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), PIL.Image.ANTIALIAS)
img = img.crop((0, 1, 216, 121))
img.save(resizedOutputPath + filename)
img.close()
cmd = "gimp-console-2.8.exe -i -b \"(let* ( (image (car (file-png-load 0 \\" + "\"" + outputPath2 + filename + "\\\" \\\"" + outputPath2 + filename + "\\\")))(drawable (car (gimp-image-get-active-layer image))))(gimp-convert-rgb image) (gimp-image-convert-indexed image 0 0 16 0 1 \\\"\\\") (file-png-save 1 image drawable " + "\\\"" + outputPath3 + filename + "\\\" \\\"" + outputPath3 + filename + "\\\" 0 0 0 0 0 0 1) (gimp-quit 0))\""
print(cmd)
print(subprocess.check_output([cmd]))
except IOError as e:
print(e)
if __name__ == "__main__":
main()