parent
a872d542b6
commit
9a107645e4
104
ASCII/plugin.py
104
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:
|
||||
|
|
|
|||
Loading…
Reference in New Issue