Add multi-account OAuth, Obsidian integration, product assets, and test tooling
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
35
product/animateit.py
Normal file
35
product/animateit.py
Normal file
@@ -0,0 +1,35 @@
|
||||
from PIL import Image
|
||||
|
||||
src = "squaremcp_storyboard.png" # save the generated grid image with this name
|
||||
out = "squaremcp_launch.gif"
|
||||
poster_out = "squaremcp_launch_poster.png"
|
||||
|
||||
img = Image.open(src).convert("RGB")
|
||||
w, h = img.size
|
||||
|
||||
# 2 rows x 4 columns
|
||||
cols, rows = 4, 2
|
||||
frame_w = w // cols
|
||||
frame_h = h // rows
|
||||
|
||||
frames = []
|
||||
for r in range(rows):
|
||||
for c in range(cols):
|
||||
left = c * frame_w
|
||||
top = r * frame_h
|
||||
right = left + frame_w
|
||||
bottom = top + frame_h
|
||||
frame = img.crop((left, top, right, bottom))
|
||||
frames.append(frame)
|
||||
|
||||
frames[0].save(poster_out, format="PNG")
|
||||
|
||||
frames[0].save(
|
||||
out,
|
||||
save_all=True,
|
||||
append_images=frames[1:],
|
||||
duration=1200
|
||||
)
|
||||
|
||||
print(f"Saved {out}")
|
||||
print(f"Saved {poster_out}")
|
||||
Reference in New Issue
Block a user