def _draw_tag(image, tag, tag_type, config_type):
label = TextLabel(tag,
ImageFont.truetype(
os.path.join(CommonUtil.resource_abs_path(), ConfigManager().tag_font(config_type)),
ConfigManager().tag_font_size(config_type)))
label.size_to_fit()
ttype = tag_type
if tag_type > len(TAG_COLOR_LIST) - 1:
ttype = 0
color = TAG_COLOR_LIST[ttype]
# trick: ??N???????????resize?1???
tag_height = ConfigManager().tag_h(config_type)
trick_scale = 4
trick_tag_view_size = ((label.fittingSize[0] + tag_height) * trick_scale, tag_height * trick_scale)
tag_view = Image.new('RGBA', trick_tag_view_size, (*color, 0))
draw = ImageDraw.Draw(tag_view)
draw.pieslice((0, 0, trick_tag_view_size[1], trick_tag_view_size[1]), 90, 270, color)
draw.rectangle((trick_tag_view_size[1] / 2, 0, trick_tag_view_size[1] / 2 + label.fittingSize[0] * trick_scale,
trick_tag_view_size[1]), color)
draw.pieslice((label.fittingSize[0] * trick_scale, 0, trick_tag_view_size[0], trick_tag_view_size[1]),
270, 90, color)
tag_view = tag_view.resize((label.fittingSize[0] + tag_height, tag_height), Image.ANTIALIAS)
label.draw_label((int(tag_height / 2), int((tag_height - label.fittingSize[1]) / 2)), tag_view)
image.paste(tag_view, (ConfigManager().tag_x(config_type), ConfigManager().tag_y(config_type)), tag_view)
评论列表
文章目录