Fr3deric
7 years ago
1 changed files with 36 additions and 0 deletions
@ -0,0 +1,36 @@
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python3 |
||||
|
||||
import argparse |
||||
import blup.frame |
||||
import blup.output |
||||
import blup.animation |
||||
import blup.writebml |
||||
import PIL.Image |
||||
|
||||
|
||||
DEPTH = 256 |
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
parser = argparse.ArgumentParser( |
||||
description='Convert GIF animations to BML.' |
||||
) |
||||
parser.add_argument('input_file') |
||||
parser.add_argument('output_file') |
||||
args = parser.parse_args() |
||||
|
||||
gif = PIL.Image.open(args.input_file) |
||||
|
||||
dim = blup.frame.FrameDimension(gif.width, gif.height, DEPTH, 3) |
||||
anim = blup.animation.Animation(dim) |
||||
|
||||
for i in range(gif.n_frames): |
||||
gif.seek(i) |
||||
gf = gif.convert('RGB') |
||||
f = blup.animation.AnimationFrame(dim, gf.info.get('delay', 100)) |
||||
for x in range(dim.width): |
||||
for y in range(dim.height): |
||||
f.setPixel(x, y, gf.getpixel((x, y))) |
||||
anim.addFrame(f) |
||||
|
||||
blup.writebml.writeBml(anim, args.output_file) |
Loading…
Reference in new issue