| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- from PIL import Image
- import json
- def readtxt():
- file = open("emoji.txt")
- txt = file.read()
- file.close()
- txt = txt.split("\n")
- res = []
- for t in txt:
- t = t.replace("\r", "")
- if t != "":
- res.append(t)
- print("read txt count: ", len(res))
- return res
- def readcss():
- txt = readtxt()
- file = open("emoji.css")
- css = file.read()
- file.close()
- css = css.split("\n\n")
- result = []
- tlist = ""
- for st in css:
- props = st.replace(".em.", "").split(", .")[0].split("{")
- name = props[0].replace(" ", "").split(",")[0]
- if name in txt:
- tlist = tlist + name + "\n"
- value = props[1].split("\n")[1].split(":")[1].split(" ")
- values = {
- "x" : float(value[1].split("%")[0]),
- "y" : float(value[2].split("%")[0])
- }
- result.append({
- "name": name,
- "value": values
- })
-
- # file = open("result.json", "w+")
- # file.write(json.dumps(result, indent=2))
- # file.write(tlist)
- # file.close()
- return result
- def fixto64(number):
- a = round(number / 64)
- return a * 64
- def slice(config):
- img = Image.open("emoji.png")
- width = img.width
- height = img.height
- x = config["value"]["x"]
- y = config["value"]["y"]
- x = round(width * x / 100, 2)
- y = round(height * y / 100, 2)
- x = x - 32 - 10
- y = y - 32 + 2
- x = fixto64(x)
- y = fixto64(y)
- res = {
- "name": config["name"],
- "rect": [x, y]
- }
- return res
- # box = (img.width * x, img.height * y, img.width * x + 64, img.height * y + 64)
- # box = (x, y, x + 64, y + 64)
- # img2 = img.crop(box)
- # print(config["name"])
- # img2.save("./emoji/" + config["name"] + ".png")
- if __name__ == "__main__":
- result = readcss()
- # print("read css count: ", len(result))
- res = {}
- for item in result:
- cnf = slice(item)
- res[cnf["name"]] = cnf["rect"]
- file = open("emoji.json", "w+")
- file.write(json.dumps(res, indent=2))
- file.close()
- # img = Image.open("emoji.png")
- # width = img.width
- # height = img.height
- # x = round(width * 0.65, 2)
- # y = round(height * 0.475, 2)
- # print(x, y)
- # img.crop((x, y, x + 64, y + 64)).save("smile.png")
-
-
-
|