mirror of
https://github.com/Genshin-bots/gsuid_core.git
synced 2025-05-12 06:55:49 +08:00
🎨 完善get_event_avatar()
方法
This commit is contained in:
parent
eb0c55998b
commit
a3fbdd4096
@ -16,23 +16,34 @@ TEXT_PATH = Path(__file__).parent / 'texture2d'
|
|||||||
BG_PATH = Path(__file__).parents[1] / 'default_bg'
|
BG_PATH = Path(__file__).parents[1] / 'default_bg'
|
||||||
|
|
||||||
|
|
||||||
async def get_event_avatar(ev: Event) -> Image.Image:
|
async def get_event_avatar(
|
||||||
|
ev: Event, avatar_path: Optional[Path] = None
|
||||||
|
) -> Image.Image:
|
||||||
|
img = None
|
||||||
if 'avatar' in ev.sender and ev.sender['avatar']:
|
if 'avatar' in ev.sender and ev.sender['avatar']:
|
||||||
avatar_url = ev.sender['avatar']
|
avatar_url = ev.sender['avatar']
|
||||||
content = (await sget(avatar_url)).content
|
content = (await sget(avatar_url)).content
|
||||||
return Image.open(BytesIO(content)).convert('RGBA')
|
return Image.open(BytesIO(content)).convert('RGBA')
|
||||||
else:
|
elif avatar_path:
|
||||||
|
pic_path_list = list(avatar_path.iterdir())
|
||||||
|
if pic_path_list:
|
||||||
|
path = random.choice(pic_path_list)
|
||||||
|
img = Image.open(path).convert('RGBA')
|
||||||
|
|
||||||
|
if img is None:
|
||||||
img = Image.open(TEXT_PATH / 'icon.jpg').convert('RGBA')
|
img = Image.open(TEXT_PATH / 'icon.jpg').convert('RGBA')
|
||||||
|
|
||||||
return img
|
return img
|
||||||
|
|
||||||
|
|
||||||
async def get_avatar_with_ring(
|
async def get_avatar_with_ring(
|
||||||
ev: Event,
|
ev: Event,
|
||||||
size: int = 300,
|
size: int = 300,
|
||||||
|
avatar_path: Optional[Path] = None,
|
||||||
bg_color: Union[Tuple[int, int, int], None] = None,
|
bg_color: Union[Tuple[int, int, int], None] = None,
|
||||||
is_ring: bool = True,
|
is_ring: bool = True,
|
||||||
) -> Image.Image:
|
) -> Image.Image:
|
||||||
avatar = await get_event_avatar(ev)
|
avatar = await get_event_avatar(ev, avatar_path)
|
||||||
return await draw_pic_with_ring(avatar, size, bg_color, is_ring)
|
return await draw_pic_with_ring(avatar, size, bg_color, is_ring)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user