|
import base64 |
|
|
|
import numpy as np |
|
import openai |
|
from PIL import Image, ImageDraw, ImageFont |
|
|
|
WIDTH = 720 |
|
HEIGHT = 1280 |
|
|
|
|
|
def create_with_upload( |
|
image, |
|
name, |
|
org, |
|
name_font_size=50, |
|
org_font_size=35, |
|
vspace=50, |
|
hspace=50, |
|
between=30, |
|
red=0, |
|
green=0, |
|
blue=100, |
|
): |
|
img = Image.fromarray(image).resize((HEIGHT, WIDTH), resample=Image.BICUBIC) |
|
name_font = ImageFont.truetype("γγ©γγγδΈΈγ³γ ProN W4.ttc", name_font_size) |
|
org_font = ImageFont.truetype("γγ©γγγδΈΈγ³γ ProN W4.ttc", org_font_size) |
|
draw = ImageDraw.Draw(img) |
|
draw.text((hspace, vspace), org, (red, green, blue), font=org_font) |
|
draw.text( |
|
(hspace, vspace + org_font_size + between), |
|
name, |
|
(red, green, blue), |
|
font=name_font, |
|
) |
|
return np.array(img) |
|
|
|
|
|
def create_with_generate( |
|
prompt, |
|
use_before, |
|
api_key, |
|
name, |
|
org, |
|
name_font_size=50, |
|
org_font_size=35, |
|
vspace=50, |
|
hspace=50, |
|
between=30, |
|
red=0, |
|
green=0, |
|
blue=100, |
|
): |
|
openai.api_key = api_key |
|
if use_before == "Generate new one": |
|
response = openai.Image.create( |
|
prompt=prompt, |
|
n=1, |
|
size="1024x1024", |
|
response_format="b64_json", |
|
) |
|
img_data = base64.b64decode(response["data"][0]["b64_json"]) |
|
with open("tmp.png", "wb") as f: |
|
f.write(img_data) |
|
|
|
img = Image.open("tmp.png").resize((HEIGHT, WIDTH), resample=Image.BICUBIC) |
|
name_font = ImageFont.truetype("γγ©γγγδΈΈγ³γ ProN W4.ttc", name_font_size) |
|
org_font = ImageFont.truetype("γγ©γγγδΈΈγ³γ ProN W4.ttc", org_font_size) |
|
draw = ImageDraw.Draw(img) |
|
draw.text((hspace, vspace), org, (red, green, blue), font=org_font) |
|
draw.text( |
|
(hspace, vspace + org_font_size + between), |
|
name, |
|
(red, green, blue), |
|
font=name_font, |
|
) |
|
return np.array(img) |
|
|