Add slohmaier and akpolke avatars
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
from PIL import Image
|
||||
|
||||
BG = (26, 26, 46)
|
||||
HAIR = (230, 200, 90)
|
||||
HAIR_DARK = (200, 170, 70)
|
||||
SKIN = (240, 210, 190)
|
||||
SKIN_DARK = (215, 185, 165)
|
||||
DRESS = (200, 60, 90)
|
||||
DRESS_DARK = (165, 45, 70)
|
||||
BLACK = (20, 20, 20)
|
||||
WHITE = (240, 240, 240)
|
||||
GRAY = (120, 125, 130)
|
||||
|
||||
S = 32
|
||||
g = [[BG] * S for _ in range(S)]
|
||||
|
||||
def rect(t, b, l, r, c):
|
||||
for y in range(t, b + 1):
|
||||
for x in range(l, r + 1):
|
||||
g[y][x] = c
|
||||
|
||||
def hline(y, l, r, c):
|
||||
for x in range(l, r + 1):
|
||||
g[y][x] = c
|
||||
|
||||
def vline(x, t, b, c):
|
||||
for y in range(t, b + 1):
|
||||
g[y][x] = c
|
||||
|
||||
# --- HAIR (rows 2-5), blonde, flowing ---
|
||||
rect(2, 5, 12, 19, HAIR)
|
||||
# hair sides framing face
|
||||
vline(12, 3, 8, HAIR)
|
||||
vline(19, 3, 8, HAIR)
|
||||
# hair top shading
|
||||
hline(2, 12, 19, HAIR_DARK)
|
||||
|
||||
# --- FACE (rows 5-10), light skin ---
|
||||
rect(5, 10, 13, 18, SKIN)
|
||||
vline(13, 5, 10, SKIN_DARK)
|
||||
vline(18, 5, 10, SKIN_DARK)
|
||||
|
||||
# --- EYES (rows 7-8) ---
|
||||
g[7][14] = BLACK; g[7][15] = BLACK
|
||||
g[7][16] = BLACK; g[7][17] = BLACK
|
||||
# eye glint
|
||||
g[7][14] = WHITE; g[7][16] = WHITE
|
||||
|
||||
# --- LIPS (row 9) ---
|
||||
g[9][15] = DRESS_DARK; g[9][16] = DRESS_DARK
|
||||
|
||||
# --- NECK (row 11) ---
|
||||
rect(11, 11, 15, 16, SKIN_DARK)
|
||||
|
||||
# --- DRESS / TORSO (rows 12-21), elegant model silhouette ---
|
||||
rect(12, 21, 12, 19, DRESS)
|
||||
vline(12, 12, 21, DRESS_DARK)
|
||||
vline(19, 12, 21, DRESS_DARK)
|
||||
# neckline
|
||||
hline(12, 13, 18, DRESS_DARK)
|
||||
|
||||
# --- ARMS (rows 12-19), slender ---
|
||||
rect(12, 19, 9, 11, SKIN)
|
||||
rect(12, 19, 20, 22, SKIN)
|
||||
# hands
|
||||
rect(18, 19, 9, 11, SKIN_DARK)
|
||||
rect(18, 19, 20, 22, SKIN_DARK)
|
||||
|
||||
# --- DRESS FLARE / SKIRT (rows 22-27) ---
|
||||
rect(22, 27, 10, 21, DRESS)
|
||||
vline(10, 22, 27, DRESS_DARK)
|
||||
vline(21, 22, 27, DRESS_DARK)
|
||||
# waist
|
||||
hline(22, 11, 20, DRESS_DARK)
|
||||
|
||||
# --- LEGS (rows 28-29), model legs ---
|
||||
rect(28, 29, 13, 15, SKIN)
|
||||
rect(28, 29, 16, 18, SKIN)
|
||||
|
||||
# --- HEELS (row 30) ---
|
||||
g[30][13] = BLACK; g[30][14] = BLACK
|
||||
g[30][17] = BLACK; g[30][18] = BLACK
|
||||
|
||||
# --- GROUND (row 31) ---
|
||||
hline(31, 9, 22, GRAY)
|
||||
|
||||
# Scale up
|
||||
img = Image.new("RGBA", (256, 256), BG + (255,))
|
||||
pixels = img.load()
|
||||
scale = 256 // S
|
||||
for y in range(S):
|
||||
for x in range(S):
|
||||
c = g[y][x]
|
||||
if c == BG:
|
||||
continue
|
||||
for dy in range(scale):
|
||||
for dx in range(scale):
|
||||
px = x * scale + dx
|
||||
py = y * scale + dy
|
||||
if 0 <= px < 256 and 0 <= py < 256:
|
||||
pixels[px, py] = c + (255,)
|
||||
|
||||
img.save("akpolke.png", "PNG", optimize=True)
|
||||
print("Saved akpolke.png 256x256")
|
||||
Reference in New Issue
Block a user