Initial commit: What To Cook (WTC) v4.4 - Digitales Kochbuch, Wochenmenueplan & Buchdruck
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import os
|
||||
from PIL import Image
|
||||
|
||||
src_path = "/home/maxi/Projekt/wtc.waiswuaschd.de/app/static/img/chapters/source_chapter_1.jpg"
|
||||
out_dir = "/home/maxi/Projekt/wtc.waiswuaschd.de/app/static/img/chapters"
|
||||
im = Image.open(src_path).convert("RGBA")
|
||||
|
||||
def make_transparent(sub_img):
|
||||
sub_img = sub_img.convert("RGBA")
|
||||
data = sub_img.getdata()
|
||||
new_data = []
|
||||
for item in data:
|
||||
r, g, b, a = item
|
||||
lum = 0.299 * r + 0.587 * g + 0.114 * b
|
||||
if lum >= 248:
|
||||
new_data.append((r, g, b, 0))
|
||||
elif lum <= 200:
|
||||
new_data.append((r, g, b, 255))
|
||||
else:
|
||||
alpha = int(255 * (248 - lum) / (248 - 200))
|
||||
new_data.append((r, g, b, alpha))
|
||||
|
||||
res = Image.new("RGBA", sub_img.size)
|
||||
res.putdata(new_data)
|
||||
|
||||
bbox = res.getbbox()
|
||||
if bbox:
|
||||
px1 = max(0, bbox[0] - 8)
|
||||
py1 = max(0, bbox[1] - 8)
|
||||
px2 = min(res.width, bbox[2] + 8)
|
||||
py2 = min(res.height, bbox[3] + 8)
|
||||
res = res.crop((px1, py1, px2, py2))
|
||||
return res
|
||||
|
||||
final_1 = make_transparent(im)
|
||||
out_path = os.path.join(out_dir, "chapter_1.png")
|
||||
final_1.save(out_path, "PNG")
|
||||
print(f"Saved Chapter 1 -> chapter_1.png ({final_1.width}x{final_1.height})")
|
||||
Reference in New Issue
Block a user