png图片制作gif动态图

from PIL import Image

# 打开新的 PNG 图片
input_image_path = "./loading.png"
input_image = Image.open(input_image_path)


def create_rotating_gif(input_image, output_filename, size=(200, 200), frames=360):
    images = []
    center = (size[0] // 2, size[1] // 2)

    # 创建一个比原始图像稍大的图像,以防止旋转时出现黑边
    larger_size = (int(size[0] * 1.5), int(size[1] * 1.5))
    larger_center = (larger_size[0] // 2, larger_size[1] // 2)

    for i in range(frames):
        angle = 360 * i / frames
        # 创建白色背景
        frame = Image.new("RGBA", larger_size, (255, 255, 255, 255))
        rotated_image = input_image.rotate(-angle, resample=Image.BICUBIC)
        # 将旋转后的图像粘贴到白色背景上
        frame.paste(rotated_image, (larger_center[0] - center[0], larger_center[1] - center[1]),
                    rotated_image.convert("RGBA"))
        # 裁剪到原始大小
        final_frame = frame.crop((larger_center[0] - size[0] // 2, larger_center[1] - size[1] // 2,
                                  larger_center[0] + size[0] // 2, larger_center[1] + size[1] // 2))
        images.append(final_frame.convert("RGB"))  # 转换为 RGB 模式

    images[0].save(output_filename, save_all=True, append_images=images[1:], duration=24, loop=0)


output_image_path = './rotating_loading.gif'
create_rotating_gif(input_image, output_image_path, size=input_image.size)


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值