Merge branch 'main' into patch-1
This commit is contained in:
commit
8c4bbd42bc
5 changed files with 176 additions and 3 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
__pycache__
|
||||||
|
__pycache__/*
|
||||||
|
|
10
README.md
10
README.md
|
@ -1,4 +1,8 @@
|
||||||
# Banter
|
# banter
|
||||||
A fun and interesting script that makes very cool color art in IRC chat
|
little script to make irc color art that will probably get you banned
|
||||||
|
|
||||||
|
![irc art of a fox with a santa hat](https://camo.githubusercontent.com/c561d6bb149035725e895178ce744f0c05ed6c55e8d71d8fe01dcce015c8025a/68747470733a2f2f74746d2e73682f646c792e706e67)
|
||||||
|
|
||||||
# Notice
|
# Notice
|
||||||
In servers/channels that don't allow colors or spam you may get muted and banned. Its best to use this in YOUR channel.
|
In servers/channels that don't allow colors or spam you may get muted and banned.
|
||||||
|
Its best to use this in YOUR channel or a spam channel.
|
||||||
|
|
37
banter.py
Executable file
37
banter.py
Executable file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys,time
|
||||||
|
from PIL import Image
|
||||||
|
from color import closestColor
|
||||||
|
|
||||||
|
ASCIIWIDTH=80
|
||||||
|
COLORCHAR='\x03{},{}' # this will be String.format()'ted with two args
|
||||||
|
FILLER='.'
|
||||||
|
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
raise Exception('you must supply an image')
|
||||||
|
|
||||||
|
im = Image.open(sys.argv[1], 'r')
|
||||||
|
width, height = im.size
|
||||||
|
pixel_values = list(im.getdata())
|
||||||
|
|
||||||
|
ipix = width // ASCIIWIDTH # // instead of / to devide with a round number
|
||||||
|
|
||||||
|
asciiHeight = height // ipix // 2
|
||||||
|
|
||||||
|
for y in range(asciiHeight):
|
||||||
|
line = []
|
||||||
|
lastColor=69420
|
||||||
|
|
||||||
|
for x in range(ASCIIWIDTH):
|
||||||
|
color = closestColor(pixel_values[width*(y*(ipix*2))+(x*ipix)])
|
||||||
|
if color == lastColor:
|
||||||
|
colorcode = ''
|
||||||
|
else:
|
||||||
|
colorcode =COLORCHAR.format(color, color)
|
||||||
|
line.append(colorcode+FILLER)
|
||||||
|
lastColor=color
|
||||||
|
|
||||||
|
print(''.join(line))
|
||||||
|
if len(sys.argv) > 2:
|
||||||
|
time.sleep(float(sys.argv[2]))
|
127
color.py
Normal file
127
color.py
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
EXTENDEDCOLORS = {
|
||||||
|
17: "#472100",
|
||||||
|
18: "#474700",
|
||||||
|
19: "#324700",
|
||||||
|
20: "#004700",
|
||||||
|
21: "#00472c",
|
||||||
|
22: "#004747",
|
||||||
|
23: "#002747",
|
||||||
|
24: "#000047",
|
||||||
|
25: "#2e0047",
|
||||||
|
26: "#470047",
|
||||||
|
27: "#47002a",
|
||||||
|
29: "#743a00",
|
||||||
|
30: "#747400",
|
||||||
|
31: "#517400",
|
||||||
|
32: "#007400",
|
||||||
|
33: "#007449",
|
||||||
|
34: "#007474",
|
||||||
|
35: "#004074",
|
||||||
|
36: "#000074",
|
||||||
|
37: "#4b0074",
|
||||||
|
38: "#740074",
|
||||||
|
39: "#740045",
|
||||||
|
41: "#b56300",
|
||||||
|
42: "#b5b500",
|
||||||
|
43: "#7db500",
|
||||||
|
44: "#00b500",
|
||||||
|
45: "#00b571",
|
||||||
|
46: "#00b5b5",
|
||||||
|
47: "#0063b5",
|
||||||
|
48: "#0000b5",
|
||||||
|
49: "#7500b5",
|
||||||
|
50: "#b500b5",
|
||||||
|
51: "#b5006b",
|
||||||
|
53: "#ff8c00",
|
||||||
|
54: "#ffff00",
|
||||||
|
55: "#b2ff00",
|
||||||
|
56: "#00ff00",
|
||||||
|
57: "#00ffa0",
|
||||||
|
58: "#00ffff",
|
||||||
|
59: "#008cff",
|
||||||
|
60: "#0000ff",
|
||||||
|
61: "#a500ff",
|
||||||
|
62: "#ff00ff",
|
||||||
|
63: "#ff0098",
|
||||||
|
65: "#ffb459",
|
||||||
|
66: "#ffff71",
|
||||||
|
67: "#cfff60",
|
||||||
|
68: "#6fff6f",
|
||||||
|
69: "#65ffc9",
|
||||||
|
70: "#6dffff",
|
||||||
|
71: "#59b4ff",
|
||||||
|
72: "#5959ff",
|
||||||
|
73: "#c459ff",
|
||||||
|
74: "#ff66ff",
|
||||||
|
75: "#ff59bc",
|
||||||
|
77: "#ffd39c",
|
||||||
|
78: "#ffff9c",
|
||||||
|
79: "#e2ff9c",
|
||||||
|
80: "#9cff9c",
|
||||||
|
81: "#9cffdb",
|
||||||
|
82: "#9cffff",
|
||||||
|
83: "#9cd3ff",
|
||||||
|
84: "#9c9cff",
|
||||||
|
85: "#dc9cff",
|
||||||
|
86: "#ff9cff",
|
||||||
|
87: "#ff94d3",
|
||||||
|
89: "#131313",
|
||||||
|
90: "#282828",
|
||||||
|
91: "#363636",
|
||||||
|
92: "#4d4d4d",
|
||||||
|
93: "#656565",
|
||||||
|
94: "#818181",
|
||||||
|
95: "#9f9f9f",
|
||||||
|
96: "#bcbcbc",
|
||||||
|
97: "#e2e2e2",
|
||||||
|
98: "#ffffff",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MIRCCOLORS = {
|
||||||
|
1: (0,0,0),
|
||||||
|
2: (0,0,127),
|
||||||
|
3: (0,147,0),
|
||||||
|
4: (255,0,0),
|
||||||
|
5: (127,0,0),
|
||||||
|
6: (156,0,156),
|
||||||
|
7: (252,127,0),
|
||||||
|
8: (255,255,0),
|
||||||
|
9: (0,252,0),
|
||||||
|
10: (0,147,147),
|
||||||
|
11: (0,255,255),
|
||||||
|
12: (0,0,252),
|
||||||
|
13: (255,0,255),
|
||||||
|
14: (127,127,127),
|
||||||
|
15: (210,210,210)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
colors = {}
|
||||||
|
|
||||||
|
# copy the dict lol
|
||||||
|
for i in MIRCCOLORS:
|
||||||
|
colors[i]=MIRCCOLORS[i]
|
||||||
|
|
||||||
|
for i in EXTENDEDCOLORS:
|
||||||
|
hex=EXTENDEDCOLORS[i].lstrip('#')
|
||||||
|
|
||||||
|
# https://stackoverflow.com/a/29643643/9406294
|
||||||
|
rgb=tuple(int(hex[i:i+2], 16) for i in (0, 2, 4))
|
||||||
|
#print(rgb)
|
||||||
|
|
||||||
|
colors[i]=rgb
|
||||||
|
|
||||||
|
|
||||||
|
COLORS = colors
|
||||||
|
|
||||||
|
|
||||||
|
def closestColor(rgb):
|
||||||
|
r, g, b = rgb
|
||||||
|
diss = {}
|
||||||
|
for cc in COLORS:
|
||||||
|
rc, gc, bc = COLORS[cc]
|
||||||
|
distance = abs(r-rc) + abs(g-gc) + abs(b-bc)
|
||||||
|
diss[cc] = distance
|
||||||
|
return min(diss, key=diss.get)
|
||||||
|
|
2
requirements.txt
Normal file
2
requirements.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Pillow==8.0.1
|
||||||
|
|
Loading…
Reference in a new issue