add log for merge image

This commit is contained in:
felinae98 2021-02-19 15:45:21 +08:00
parent 0f59590ccf
commit 385d47268f
No known key found for this signature in database
GPG Key ID: 00C8B010587FF610

View File

@ -1,7 +1,9 @@
import base64 import base64
import math
from dataclasses import dataclass, field from dataclasses import dataclass, field
from io import BytesIO from io import BytesIO
from typing import NoReturn, Optional from typing import NoReturn, Optional
from nonebot import logger
import httpx import httpx
from PIL import Image from PIL import Image
from .plugin_config import plugin_config from .plugin_config import plugin_config
@ -35,15 +37,17 @@ class Post:
if len(self.pics) < 6: if len(self.pics) < 6:
return return
first_image = await self._pic_url_to_image(self.pics[0]) first_image = await self._pic_url_to_image(self.pics[0])
if first_image.size[0] != first_image.size[1]: if abs(first_image.size[0] - first_image.size[1]) / first_image.size[0] > 0.05:
return return
pic_size = first_image.size[0] pic_size = first_image.size[0]
images = [first_image] images = [first_image]
for pic in self.pics[1:]: for pic in self.pics[1:]:
cur_image = await self._pic_url_to_image(pic) cur_image = await self._pic_url_to_image(pic)
if cur_image.size[0] != pic_size or cur_image.size[1] != pic_size: if abs(first_image.size[0] - pic_size) / pic_size > 0.05 or \
abs(first_image.size[1] - pic_size) / pic_size > 0.05:
break break
images.append(cur_image) images.append(cur_image)
logger.debug('{} images is same size'.format(len(images)))
if len(images) == 6: if len(images) == 6:
matrix = (3, 2) matrix = (3, 2)
self.pics = self.pics[6:] self.pics = self.pics[6:]
@ -52,6 +56,7 @@ class Post:
self.pics = self.pics[9:] self.pics = self.pics[9:]
else: else:
return return
logger.info('trigger merge image with {} imgs'.format(len(images)))
target = Image.new('RGB', (matrix[0] * pic_size, matrix[1] * pic_size)) target = Image.new('RGB', (matrix[0] * pic_size, matrix[1] * pic_size))
for y in range(matrix[1]): for y in range(matrix[1]):
for x in range(matrix[0]): for x in range(matrix[0]):