🢂Generator Img placeholderów w Pythonie

Pozwala na wygentrowanie placeholderów w PNG w dowlnych wymiarach i ilości

Jak używać generatora

  1. Utwórz plik
>placeholder.py
  1. Kod do pliku (poniżej)

  2. Chmod (zmień na wykonywalny)

chmod +x placeholder.py
  1. Generujemy :)
./placeholder.py

Kod generatora

#!/usr/bin/env python3
from PIL import Image
import numpy as np
import PIL
import PIL.Image as Image
import PIL.ImageDraw as ImageDraw
import PIL.ImageFont as ImageFont


bg_colour = (00,123, 81)
# text_colour = 'rgb(89, 89, 89)'
text_colour = 'rgb(255, 255, 255)'
fontpath = "/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf"

ile = 1
count = 0
proporcje_fontu = 15


# Zmiana rozmiarów
dimens = []
# dimens.append(["FHD",1920,1080])
# dimens.append(["kwadrat",2480,2480])
# dimens.append(["UWFHD",2560,1080])
# dimens.append(["B5",2953,2079])
# dimens.append(["A4",3508,2480])
# dimens.append(["nHD",640,360])
# dimens.append(["SVGA",800,600])
# dimens.append(["XGA",1024,768])
# dimens.append(["WXGA",1280,720])
# dimens.append(["SXGA",1280,1024])
# dimens.append(["HD",1360,768])
# dimens.append(["WXGA+",1440,900])
# dimens.append(["HD+",1600,900])
# dimens.append(["WSXGA+",1680,1050])
# dimens.append(["FHD",1920,1080])
# dimens.append(["WUXGA",1920,1200])
# dimens.append(["QWXGA",2048,1152])
# dimens.append(["QXGA",2048,1536])
# dimens.append(["UWFHD",2560,1080])
# dimens.append(["QHD",2560,1440])
# dimens.append(["UWQHD",3440,1440])
# dimens.append(["4K UHD",3840,2160])
# Reklamy FB
# //dimens.append(["FB1",1200,1200])
# dimens.append(["FB",175,45])
dimens.append(["losowe",1024,1024])

while (count < ile):
    count = count + 1
    # Wertykalny
    for x in dimens:
        a = np.full(( x[1],  x[2], 3), bg_colour, dtype=np.uint8)
        name = "_".join(map(str, x))

        wymiary = " x ".join(map(str, [x[0],x[1],x[2]]))
        image = Image.fromarray(a, "RGB")
        draw = ImageDraw.Draw(image)
        fontsize = round(x[2] / proporcje_fontu)
        font = ImageFont.truetype(fontpath, fontsize)
        textsize = draw.textsize(wymiary, font=font)
        textX = ((x[2] - textsize[0]) / 2)
        textY = ((x[1] + textsize[1]) / 2)
        draw.text((textX, textY),  wymiary, font=font, fill=text_colour)
        image.save(name.__add__("_").__add__(str(count)).__add__("_v_").__add__(".png"), "PNG")

    #Horyzontalny
    for y in dimens:
        b = np.full(( y[2], y[1], 3), bg_colour, dtype=np.uint8)
        name = "_".join(map(str, y))
        wymiary = " x ".join(map(str, [y[0],y[2],y[1]]))

        image = Image.fromarray(b, "RGB")
        draw = ImageDraw.Draw(image)
        fontsize = round(y[2] / proporcje_fontu)
        font = ImageFont.truetype(fontpath, fontsize)
        textsize = draw.textsize(wymiary, font=font)
        textX = ((y[1] - textsize[0]) / 2)
        textY = ((y[2] + textsize[1]) / 2)
        draw.text((textX, textY),  wymiary, font=font, fill=text_colour)
        image.save(name.__add__("_").__add__(str(count)).__add__("_h_").__add__(".png"), "PNG")

### Koniec