mirror of
https://github.com/openvinotoolkit/stable-diffusion-webui.git
synced 2024-12-14 22:53:25 +03:00
Merge pull request #10780 from akx/image-emb-fonts
Mark caption_image_overlay's textfont as deprecated; fix #10778
This commit is contained in:
parent
eed7b2776e
commit
6f754ab98b
@ -1,8 +1,10 @@
|
|||||||
import base64
|
import base64
|
||||||
import json
|
import json
|
||||||
|
import warnings
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import zlib
|
import zlib
|
||||||
from PIL import Image, ImageDraw, ImageFont
|
from PIL import Image, ImageDraw
|
||||||
import torch
|
import torch
|
||||||
|
|
||||||
|
|
||||||
@ -129,14 +131,17 @@ def extract_image_data_embed(image):
|
|||||||
|
|
||||||
|
|
||||||
def caption_image_overlay(srcimage, title, footerLeft, footerMid, footerRight, textfont=None):
|
def caption_image_overlay(srcimage, title, footerLeft, footerMid, footerRight, textfont=None):
|
||||||
|
from modules.images import get_font
|
||||||
|
if textfont:
|
||||||
|
warnings.warn(
|
||||||
|
'passing in a textfont to caption_image_overlay is deprecated and does nothing',
|
||||||
|
DeprecationWarning,
|
||||||
|
stacklevel=2,
|
||||||
|
)
|
||||||
from math import cos
|
from math import cos
|
||||||
|
|
||||||
image = srcimage.copy()
|
image = srcimage.copy()
|
||||||
fontsize = 32
|
fontsize = 32
|
||||||
if textfont is None:
|
|
||||||
from modules.images import get_font
|
|
||||||
textfont = get_font(fontsize)
|
|
||||||
|
|
||||||
factor = 1.5
|
factor = 1.5
|
||||||
gradient = Image.new('RGBA', (1, image.size[1]), color=(0, 0, 0, 0))
|
gradient = Image.new('RGBA', (1, image.size[1]), color=(0, 0, 0, 0))
|
||||||
for y in range(image.size[1]):
|
for y in range(image.size[1]):
|
||||||
@ -147,12 +152,12 @@ def caption_image_overlay(srcimage, title, footerLeft, footerMid, footerRight, t
|
|||||||
|
|
||||||
draw = ImageDraw.Draw(image)
|
draw = ImageDraw.Draw(image)
|
||||||
|
|
||||||
font = ImageFont.truetype(textfont, fontsize)
|
font = get_font(fontsize)
|
||||||
padding = 10
|
padding = 10
|
||||||
|
|
||||||
_, _, w, h = draw.textbbox((0, 0), title, font=font)
|
_, _, w, h = draw.textbbox((0, 0), title, font=font)
|
||||||
fontsize = min(int(fontsize * (((image.size[0]*0.75)-(padding*4))/w)), 72)
|
fontsize = min(int(fontsize * (((image.size[0]*0.75)-(padding*4))/w)), 72)
|
||||||
font = ImageFont.truetype(textfont, fontsize)
|
font = get_font(fontsize)
|
||||||
_, _, w, h = draw.textbbox((0, 0), title, font=font)
|
_, _, w, h = draw.textbbox((0, 0), title, font=font)
|
||||||
draw.text((padding, padding), title, anchor='lt', font=font, fill=(255, 255, 255, 230))
|
draw.text((padding, padding), title, anchor='lt', font=font, fill=(255, 255, 255, 230))
|
||||||
|
|
||||||
@ -163,7 +168,7 @@ def caption_image_overlay(srcimage, title, footerLeft, footerMid, footerRight, t
|
|||||||
_, _, w, h = draw.textbbox((0, 0), footerRight, font=font)
|
_, _, w, h = draw.textbbox((0, 0), footerRight, font=font)
|
||||||
fontsize_right = min(int(fontsize * (((image.size[0]/3)-(padding))/w)), 72)
|
fontsize_right = min(int(fontsize * (((image.size[0]/3)-(padding))/w)), 72)
|
||||||
|
|
||||||
font = ImageFont.truetype(textfont, min(fontsize_left, fontsize_mid, fontsize_right))
|
font = get_font(min(fontsize_left, fontsize_mid, fontsize_right))
|
||||||
|
|
||||||
draw.text((padding, image.size[1]-padding), footerLeft, anchor='ls', font=font, fill=(255, 255, 255, 230))
|
draw.text((padding, image.size[1]-padding), footerLeft, anchor='ls', font=font, fill=(255, 255, 255, 230))
|
||||||
draw.text((image.size[0]/2, image.size[1]-padding), footerMid, anchor='ms', font=font, fill=(255, 255, 255, 230))
|
draw.text((image.size[0]/2, image.size[1]-padding), footerMid, anchor='ms', font=font, fill=(255, 255, 255, 230))
|
||||||
|
Loading…
Reference in New Issue
Block a user