序列帧动画素材预览拆分脚本

开发的时候,有时候需要用到一些第三方资源。

这个时候拿到的第三方资源可能是合并到一起的整图

开发人员可能无法直观了解到这个序列帧动画的效果,另外在开发中可能需要将整图进行拆分。

为了满足这个需求,利用AI写了一个python脚本进行处理,希望对有需要的朋友能提供一点帮助。

示例代码如下:

from PIL import Image

import os

# 打开序列帧图集

sprite_sheet_path = r'地址:\原图名称.png'

sprite_sheet = Image.open(sprite_sheet_path)

# 自动识别图集大小

sheet_width, sheet_height = sprite_sheet.size

columns = 4  # 假设有4列

rows = 3     # 假设有3行

frame_width = sheet_width // columns

frame_height = sheet_height // rows

frames = []

# 创建单帧图像保存目录

output_dir = os.path.join(os.path.dirname(sprite_sheet_path), 'frames')

os.makedirs(output_dir, exist_ok=True)

# 提取每一帧并保存

for j in range(rows):

    for i in range(columns):

        left = i * frame_width

        upper = j * frame_height

        right = left + frame_width

        lower = upper + frame_height

        frame = sprite_sheet.crop((left, upper, right, lower))

        frames.append(frame)

        # 保存单帧图像,使用源文件名作为前缀

        frame.save(os.path.join(output_dir, f'01_frame_{j*columns+i+1}.png'))

# 保存为GIF,使用源文件名作为前缀

gif_output_path = os.path.join(os.path.dirname(sprite_sheet_path), '01_output.gif')

frames[0].save(gif_output_path, save_all=True, append_images=frames[1:], loop=0, duration=100)

已经把这个序列帧工具封装到工具集里面了,感兴趣的朋友可以下载体验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值