Browse Source

Use Gooey to add GUI

master
Noëlle Anthony 4 years ago
parent
commit
d6211a0974
1 changed files with 21 additions and 13 deletions
  1. 21
    13
      stitchify.py

+ 21
- 13
stitchify.py View File

@@ -1,3 +1,4 @@
# coding: utf-8
""" Converts pixel-art images into cross-stitch patterns.

This tool assumes that 1px = 1 stitch.
@@ -10,21 +11,24 @@
* Add grid lines and edge labels to image. (DONE)
* Add legend to image, based on the `symbols` dictionary. (DONE)
* Correspond hex colors to floss colors, where possible.
* (Maybe) add stitch count for each color. (DONE)
* (Maybe) add GUI.
* (Maybe) add stitch count for each color. (DONE)
* (Maybe) add GUI. (DONE)
* Make sure legend width doesn't exceed image width.
"""

__author__ = "Noëlle Anthony"
__version__ = "0.3.2"
__version__ = "0.4.0"

import sys
from PIL import Image, ImageDraw
from collections import defaultdict
from gooey import Gooey, GooeyParser

def main(img_name):
def create_stitch(img_name, img_out, display):
img = Image.open(img_name)
oimg_name_bits = img_name.split(".")
oimg_name = "".join(oimg_name_bits[:-1]) + "_pattern." + oimg_name_bits[-1]
#oimg_name_bits = img_name.split(".")
#oimg_name = "".join(oimg_name_bits[:-1]) + "_pattern." + oimg_name_bits[-1]
oimg_name = img_out

w,h = img.size

@@ -115,13 +119,17 @@ def main(img_name):
draw.text((20, (h*10)+20), legend_out, fill=0)
oimg.save(oimg_name)
print("Saved {}".format(oimg_name))
if display:
oimg.show()

@Gooey
def main():
parser = GooeyParser()
parser.add_argument("img_name", help="The image file you want to convert", widget="FileChooser")
parser.add_argument("img_out", help="The name of the output pattern", widget="FileSaver")
parser.add_argument("--display", help="Display the image after creation", action="store_true")
args = parser.parse_args()
create_stitch(args.img_name, args.img_out, args.display)

if __name__ == "__main__":
#print(len(sys.argv))
#print(sys.argv[1])
if len(sys.argv) >= 2:
img_name = sys.argv[1]
else:
img_name = "test.png"
main(img_name)
main()

Loading…
Cancel
Save