def render(self, stream, value):
im = self.im.copy()
im2 = self.im.copy()
x = 0
r_i = sum(ord(c) for c in value) # ????????????????
for c in value:
fgimg = Image.new('RGBA', self.size, self.font_color)
charimg = Image.new('L', self.font.getsize(c), '#000000')
draw = ImageDraw.Draw(charimg)
draw.text((0, 0), c, font=self.font, fill='#ffffff')
r = (int(time()) / 1000 + ord(c) + r_i) % 40 - 20 # ???????????????
charimg = charimg.rotate(r, expand=1, resample=Image.BICUBIC)
charimg = charimg.crop(charimg.getbbox())
maskimg = Image.new('L', self.size)
y = (im2.size[1] - charimg.size[1]) / 2
maskimg.paste(charimg, (x, y, charimg.size[0] + x, charimg.size[1] + y))
im2 = Image.composite(fgimg, im2, maskimg)
x += charimg.size[0] - 5 # - X???
# ??????? x ??
center = (im.size[0] - x) / 2
im.paste(im2, (center, 0, im2.size[0]+center, im2.size[1]))
im.save(stream, self.image_type)
评论列表
文章目录