From 9a107645e4d7d0402524db6ce7b34ffc71d43df7 Mon Sep 17 00:00:00 2001 From: Gordon Shumway <39967334+oddluck@users.noreply.github.com> Date: Wed, 20 Mar 2019 22:13:41 -0400 Subject: [PATCH] 99 problems, lack of color ain't one 99 color support --- ASCII/plugin.py | 104 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 86 insertions(+), 18 deletions(-) diff --git a/ASCII/plugin.py b/ASCII/plugin.py index 34e9ad2..e2b65e4 100644 --- a/ASCII/plugin.py +++ b/ASCII/plugin.py @@ -14,7 +14,7 @@ import supybot.callbacks as callbacks import supybot.ircmsgs as ircmsgs import os import requests -from PIL import Image +from PIL import Image, ImageFilter import numpy as np import sys, math from fake_useragent import UserAgent @@ -101,22 +101,90 @@ class ASCII(callbacks.Plugin): Given PIL Image, return average RGB value """ pixel = pixel[:3] - colors = {"white": (211, 215, 207), - "black": (46, 52, 54), - "blue":(52, 101, 164), - "green":(78, 154, 6), - "red":(204, 0, 0), - "brown":(143, 57, 2), - "purple":(92, 53, 102), - "orange":(206, 92, 0), - "yellow":(196, 160, 0), - "light green":(115, 210, 22), - "teal":(17, 168, 121), - "light blue":(88, 161, 157), - "dark blue":(87, 121, 158), - "pink":(160, 67, 101), - "dark grey":(85, 87, 83), - "light grey":(136, 137, 133)} + colors = { + "16":(71,0,0), + "17":(71,33,0), + "18":(71,71,0), + "19":(50,71,0), + "20":(0,71,0), + "21":(0,71,44), + "22":(0,71,71), + "23":(0,39,71), + "24":(0,0,71), + "25":(46,0,71), + "26":(71,0,71), + "27":(71,0,42), + "28":(116,0,0), + "29":(116,58,0), + "30":(116,116,0), + "31":(81,116,0), + "32":(0,116,0), + "33":(0,116,73), + "34":(0,116,116), + "35":(0,64,116), + "36":(0,0,116), + "37":(75,0,116), + "38":(116,0,116), + "39":(116,0,69), + "40":(181,0,0), + "41":(181,99,0), + "42":(181,181,0), + "43":(125,181,0), + "44":(0,181,0), + "45":(0,181,113), + "46":(0,181,181), + "47":(0,99,181), + "48":(0,0,181), + "49":(117,0,181), + "50":(181,0,181), + "51":(181,0,107), + "52":(255,0,0), + "53":(255,140,0), + "54":(255,255,0), + "55":(178,255,0), + "56":(0,255,0), + "57":(0,255,160), + "58":(0,255,255), + "59":(0,140,255), + "60":(0,0,255), + "61":(165,0,255), + "62":(255,0,255), + "63":(255,0,152), + "64":(255,89,89), + "65":(255,180,89), + "66":(255,255,113), + "67":(207,255,96), + "68":(111,255,111), + "69":(101,255,201), + "70":(109,255,255), + "71":(89,180,255), + "72":(89,89,255), + "73":(196,89,255), + "74":(255,102,255), + "75":(255,89,188), + "76":(255,156,156), + "77":(255,211,156), + "78":(255,255,156), + "79":(226,255,156), + "80":(156,255,156), + "81":(156,255,219), + "82":(156,255,255), + "83":(156,211,255), + "84":(156,156,255), + "85":(220,156,255), + "86":(255,156,255), + "87":(255,148,211), + "88":(0,0,0), + "89":(19,19,19), + "90":(40,40,40), + "91":(54,54,54), + "92":(77,77,77), + "93":(101,101,101), + "94":(129,129,129), + "95":(159,159,159), + "96":(188,188,188), + "97":(226,226,226), + "98":(255,255,255)} manhattan = lambda x,y : abs(x[0] - y[0]) + abs(x[1] - y[1]) + abs(x[2] - y[2]) distances = {k: manhattan(v, pixel) for k, v in colors.items()} color = min(distances, key=distances.get) @@ -187,7 +255,7 @@ class ASCII(callbacks.Plugin): # get color value color = self.getAverageC(colormap[j][i].tolist()) # append ascii char to string - aimg[j] += ircutils.mircColor(gsval, color, None) + aimg[j] += "\x03{0}{1}".format(color, gsval) # return txt image output = aimg for line in output: