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
685
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
02-01
6097
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-11
3290
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交