diff --git a/GenshinUID/genshinuid_dailycost/draw_daily_cost.py b/GenshinUID/genshinuid_dailycost/draw_daily_cost.py index b9a37c1e..3e1c0d05 100644 --- a/GenshinUID/genshinuid_dailycost/draw_daily_cost.py +++ b/GenshinUID/genshinuid_dailycost/draw_daily_cost.py @@ -68,7 +68,11 @@ async def draw_daily_cost_img(is_force: bool = False) -> Union[str, bytes]: icon = icon.resize((77, 77)) bar = Image.open(TEXT_PATH / 'bar.png') bar_draw = ImageDraw.Draw(bar) - bar.paste(icon, (43, 10), icon) + if icon.mode == 'RGBA': + mask = icon.split()[3] # 获取alpha通道作为遮罩 + bar.paste(icon, (43, 10), mask) + else: + bar.paste(icon, (43, 10)) # 如果没有alpha通道,不使用遮罩 domain1, domain2 = domain.split(':') diff --git a/GenshinUID/genshinuid_xkdata/draw_abyss_total.py b/GenshinUID/genshinuid_xkdata/draw_abyss_total.py index 22609825..d0bd2ff4 100644 --- a/GenshinUID/genshinuid_xkdata/draw_abyss_total.py +++ b/GenshinUID/genshinuid_xkdata/draw_abyss_total.py @@ -99,7 +99,11 @@ async def draw_xk_abyss_img(): # 绘图部分 char_bg = Image.open(TEXT_PATH / 'char_bg.png') charimg = Image.open(CHAR_PATH / f'{char_id}.png').resize((117, 117)) - char_bg.paste(charimg, (6, 2), charimg) + if charimg.mode == 'RGBA': + mask = charimg.split()[3] # 使用alpha通道作为mask + char_bg.paste(charimg, (6, 2), mask) + else: + char_bg.paste(charimg, (6, 2)) char_bg_draw = ImageDraw.Draw(char_bg) if char['rarity'] >= 5: text = (193, 123, 0)