Eerste commit voor Helvoirt Gevelreiniging
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
from PIL import Image, ImageEnhance, ImageDraw, ImageFilter
|
||||
import random
|
||||
random.seed(7)
|
||||
im = Image.open("public/images/hero-after.webp").convert("RGB")
|
||||
w, h = im.size
|
||||
# ontkleuren + verdonkeren
|
||||
im = ImageEnhance.Color(im).enhance(0.5)
|
||||
im = ImageEnhance.Brightness(im).enhance(0.82)
|
||||
im = ImageEnhance.Contrast(im).enhance(0.92)
|
||||
# groen/grijs algen-overlay, sterker naar onderen
|
||||
ov = Image.new("RGB", (w, h), (60, 78, 55))
|
||||
mask = Image.new("L", (w, h), 0)
|
||||
md = mask.load()
|
||||
for y in range(h):
|
||||
base = int(40 + 150 * (y / h) ** 1.6) # onder veel sterker
|
||||
for x in range(0, w, 4):
|
||||
v = base
|
||||
md[x, y] = max(0, min(190, v))
|
||||
if x+1 < w: md[x+1, y] = md[x, y]
|
||||
if x+2 < w: md[x+2, y] = md[x, y]
|
||||
if x+3 < w: md[x+3, y] = md[x, y]
|
||||
mask = mask.filter(ImageFilter.GaussianBlur(8))
|
||||
im = Image.composite(ov, im, mask)
|
||||
# donkere drip-strepen
|
||||
d = ImageDraw.Draw(im, "RGBA")
|
||||
for _ in range(70):
|
||||
x = random.randint(0, w); top = random.randint(0, int(h*0.5)); ln = random.randint(int(h*0.2), int(h*0.7))
|
||||
a = random.randint(12, 34)
|
||||
d.line([(x, top), (x + random.randint(-6,6), top+ln)], fill=(30, 40, 30, a), width=random.randint(1,3))
|
||||
im = im.filter(ImageFilter.GaussianBlur(0.4))
|
||||
im.save("public/images/hero-before.webp", "WEBP", quality=88, method=6)
|
||||
print("OK hero-before.webp", im.size)
|
||||
Reference in New Issue
Block a user