Images2gif が Python 3 で動作しません。PIL doc を確認しました。GIF 画像の読み取りをサポートしていますが、保存すると画像がアニメーション化されません。アプリのユーザーがアップロードした画像に透かしを入れる必要があります。コードは次のように既に実行しています。GIF画像なしで機能しました。
def watermark(fp, text, position=None, font=None, quality=85):
if isinstance(fp, bytes):
fp = BytesIO(fp)
im = Image.open(fp)
water_im = Image.new("RGBA", im.size)
water_draw = ImageDraw.ImageDraw(water_im)
if isinstance(font, str):
font = ImageFont.truetype(font, 10 + int(im.size[0] / 100))
if not position:
water_size = water_draw.textsize(text, font=font)
position = (im.size[0] - water_size[0] * 1.05,
im.size[1] - water_size[1] * 1.2)
water_draw.text(position, text, font=font)
water_mask = water_im.convert("L").point(lambda x: min(x, 160))
water_im.putalpha(water_mask)
if im.format == 'GIF':
for frame in ImageSequence.Iterator(im):
frame.paste(water_im, None, water_im)
else:
im.paste(water_im, None, water_im)
out = BytesIO()
im.save(out, im.format, quality=quality, **im.info)
return out.getvalue()