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 from pathlib import Path
import yaml import yaml
from PIL import Image, ImageOps from PIL import Image
import modules.extensions as extensions_module import modules.extensions as extensions_module
import modules.shared as shared import modules.shared as shared
from modules.extensions import apply_extensions 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, from modules.text_generation import (encode, generate_reply,
get_max_prompt_length) 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']]: for path in [Path(f"characters/{character}.{extension}") for extension in ['png', 'jpg', 'jpeg']]:
if path.exists(): if path.exists():
img = Image.open(path) img = make_thumbnail(Image.open(path))
img = ImageOps.fit(img, (350, 470), Image.ANTIALIAS)
img.save(Path('cache/pfp_character.png'), format='PNG') img.save(Path('cache/pfp_character.png'), format='PNG')
return img return img
return None return None
@ -432,6 +432,6 @@ def upload_your_profile_picture(img):
if Path("cache/pfp_me.png").exists(): if Path("cache/pfp_me.png").exists():
Path("cache/pfp_me.png").unlink() Path("cache/pfp_me.png").unlink()
else: else:
img = ImageOps.fit(img, (350, 470), Image.ANTIALIAS) img = make_thumbnail(img)
img.save(Path('cache/pfp_me.png')) img.save(Path('cache/pfp_me.png'))
print('Profile picture saved to "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 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): def get_image_cache(path):
cache_folder = Path("cache") cache_folder = Path("cache")
if not cache_folder.exists(): if not cache_folder.exists():
@ -103,8 +110,7 @@ def get_image_cache(path):
mtime = os.stat(path).st_mtime mtime = os.stat(path).st_mtime
if (path in image_cache and mtime != image_cache[path][0]) or (path not in image_cache): if (path in image_cache and mtime != image_cache[path][0]) or (path not in image_cache):
img = Image.open(path) img = make_thumbnail(Image.open(path))
img = ImageOps.fit(img, (350, 470), Image.ANTIALIAS)
output_file = Path(f'cache/{path.name}_cache.png') output_file = Path(f'cache/{path.name}_cache.png')
img.convert('RGB').save(output_file, format='PNG') img.convert('RGB').save(output_file, format='PNG')
image_cache[path] = [mtime, output_file.as_posix()] image_cache[path] = [mtime, output_file.as_posix()]