-
Notifications
You must be signed in to change notification settings - Fork 0
/
gtppt.py
46 lines (35 loc) · 1.44 KB
/
gtppt.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import sys
import glob
from PIL import Image, ImageSequence
from pptx import Presentation
from pptx.util import Inches
gif_files = sys.argv[1:]
# Create a new PowerPoint presentation
presentation = Presentation()
for gif_file in gif_files:
im = Image.open(gif_file)
# Save each frame of the gif as a separate tiff image
base_filename = gif_file.split(".")[0]
for i, frame in enumerate(ImageSequence.Iterator(im)):
frame.save(f"{base_filename}{i}.tiff", "TIFF")
# Get a list of all the tiff images generated by the gif
tiff_files = glob.glob(f"{base_filename}*.tiff")
# Create a slide for each gif
slide = presentation.slides.add_slide(presentation.slide_layouts[6])
# Initialize the left and top positions
left = top = Inches(1)
# Loop through the tiff files and add them to the slide
for tiff_file in tiff_files:
tiff_img = Image.open(tiff_file)
width = Inches(tiff_img.width / 100)
height = Inches(tiff_img.height / 100)
pic = slide.shapes.add_picture(tiff_file, left, top, width=width, height=height)
# increment the left position for the next image
left += width + Inches(0.5)
# Save the presentation
presentation.save(f"{base_filename}.pptx")
tiff_files_string = "\n".join(tiff_files)
print(f"File {gif_file} copied to\n{tiff_files_string}\nthen saved in {base_filename}.pptx")
print(" ")
print("CornoJob pronto Nana!")
print(" ")