Add make_thumbnail function

This commit is contained in:
oobabooga 2023-04-04 23:03:58 -03:00
parent 80dfba05f3
commit cc6c7a37f3
2 changed files with 13 additions and 7 deletions

View File

@ -7,12 +7,13 @@ from datetime import datetime
from pathlib import Path
import yaml
from PIL import Image, ImageOps
from PIL import Image
import modules.extensions as extensions_module
import modules.shared as shared
from modules.extensions import apply_extensions
from modules.html_generator import fix_newlines, generate_chat_html
from modules.html_generator import (fix_newlines, generate_chat_html,
make_thumbnail)
from modules.text_generation import (encode, generate_reply,
get_max_prompt_length)
@ -333,8 +334,7 @@ def generate_pfp_cache(character):
for path in [Path(f"characters/{character}.{extension}") for extension in ['png', 'jpg', 'jpeg']]:
if path.exists():
img = Image.open(path)
img = ImageOps.fit(img, (350, 470), Image.ANTIALIAS)
img = make_thumbnail(Image.open(path))
img.save(Path('cache/pfp_character.png'), format='PNG')
return img
return None
@ -432,6 +432,6 @@ def upload_your_profile_picture(img):
if Path("cache/pfp_me.png").exists():
Path("cache/pfp_me.png").unlink()
else:
img = ImageOps.fit(img, (350, 470), Image.ANTIALIAS)
img = make_thumbnail(img)
img.save(Path('cache/pfp_me.png'))
print('Profile picture saved to "cache/pfp_me.png"')

View File

@ -96,6 +96,13 @@ def generate_4chan_html(f):
return output
def make_thumbnail(image):
image = image.resize((350, round(image.size[1]/image.size[0]*350)), Image.Resampling.LANCZOS)
if image.size[1] > 470:
image = ImageOps.fit(image, (350, 470), Image.ANTIALIAS)
return image
def get_image_cache(path):
cache_folder = Path("cache")
if not cache_folder.exists():
@ -103,8 +110,7 @@ def get_image_cache(path):
mtime = os.stat(path).st_mtime
if (path in image_cache and mtime != image_cache[path][0]) or (path not in image_cache):
img = Image.open(path)
img = ImageOps.fit(img, (350, 470), Image.ANTIALIAS)
img = make_thumbnail(Image.open(path))
output_file = Path(f'cache/{path.name}_cache.png')
img.convert('RGB').save(output_file, format='PNG')
image_cache[path] = [mtime, output_file.as_posix()]