33
AI로 일하는 방법/extract_ai_work_source_images.py
Normal file
33
AI로 일하는 방법/extract_ai_work_source_images.py
Normal file
@@ -0,0 +1,33 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from pptx import Presentation
|
||||
from pptx.enum.shapes import MSO_SHAPE_TYPE
|
||||
|
||||
|
||||
def main() -> None:
|
||||
base_dir = Path(__file__).resolve().parent
|
||||
src = base_dir / "resources" / "inputs" / "ai_work_source.pptx"
|
||||
out_dir = base_dir / "resources" / "assets" / "ai_work_source_assets"
|
||||
out_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
prs = Presentation(str(src))
|
||||
for idx, slide in enumerate(prs.slides, start=1):
|
||||
pics = [sh for sh in slide.shapes if sh.shape_type == MSO_SHAPE_TYPE.PICTURE]
|
||||
if not pics:
|
||||
continue
|
||||
if len(pics) != 1:
|
||||
print(f"Slide {idx}: pictures={len(pics)} (expected 1). Extracting all.")
|
||||
|
||||
for j, pic in enumerate(pics, start=1):
|
||||
image = pic.image
|
||||
ext = image.ext or "bin"
|
||||
out = out_dir / f"slide{idx:02d}_img{j:02d}.{ext}"
|
||||
out.write_bytes(image.blob)
|
||||
print(f"wrote {out} ({len(image.blob):,} bytes)")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user