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)
01-06
700
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
02-01
6414
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-11
3335
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)