How fjibj/pic2ppt works
Pic2PPT turns diagrams into editable PowerPoint shapes. Its main workflow accepts a PNG/JPG in the GUI or pipeline, uses an AI provider to produce SVG, validates and repairs that SVG, then parses and renders it as PPTX. SVGs can also be converted directly. The SVG renderer dispatches elements to specialized handlers, supported by shared geometry, style, and color logic. The README also documents file selection, drag-and-drop, and paste in the GUI. Relationships for GUI interactions and some unsampled features are limited to README or index evidence.
Main entry points: __init__.py Handler registry · pipeline.py Image pipeline · converter.py SVG converter · polygons.py Paths and polygons
Components 20
User entry
- PNG/JPG input
- SVG input
- Desktop GUI
pic2ppt.py - Usage limiter
src/usage_limiter.py
Image conversion
- Image pipeline
src/pipeline.py - AI image-to-SVG
src/png2svg/ai_client.py - AI providers
- SVG validator
src/png2svg/validator.py
SVG rendering
- SVG converter
src/svg_converter/converter.py - SVG parser
src/svg_converter/parser.py - Handler registry
src/svg_converter/handlers/__init__.py - SVG models
src/svg_converter/models.py - Basic shapes
src/svg_converter/handlers/basic_shapes.py - Paths and polygons
src/svg_converter/handlers/polygons.py - Text handler
src/svg_converter/handlers/text.py - Group handler
src/svg_converter/handlers/group.py - Geometry analysis
src/svg_converter/geometry.py - Color parsing
src/svg_converter/color_utils.py
PowerPoint output
- Editable PPTX
Other components
- Diagram user
Connections 27
- Diagram user → Desktop GUI: uploads or pastes
README.md - Diagram user → PNG/JPG input: selects image
README.md - Diagram user → SVG input: selects SVG
README.md - PNG/JPG input → Image pipeline: converts image
src/pipeline.py - Desktop GUI → Image pipeline: starts conversion
pic2ppt.py - Desktop GUI → Usage limiter: checks usage
pic2ppt.py - Image pipeline → AI image-to-SVG: requests SVG
src/pipeline.py - AI image-to-SVG → AI providers: calls AI API
src/png2svg/ai_client.py - Image pipeline → SVG validator: validates and repairs
src/pipeline.py - Image pipeline → SVG converter: converts SVG
src/pipeline.py - SVG input → SVG converter: converts directly
README.md - SVG converter → SVG parser: parses SVG
src/svg_converter/converter.py - SVG converter → Handler registry: registers handlers
src/svg_converter/converter.py - SVG converter → Editable PPTX: saves presentation
README.md - SVG parser → SVG models: builds elements
src/svg_converter/parser.py - SVG parser → Color parsing: parses styles
src/svg_converter/parser.py - Handler registry → SVG models: dispatches elements
src/svg_converter/handlers/__init__.py - Handler registry → Basic shapes: dispatches shapes
src/svg_converter/converter.py - Handler registry → Paths and polygons: dispatches paths
src/svg_converter/converter.py - Handler registry → Text handler: dispatches text
src/svg_converter/converter.py - Handler registry → Group handler: dispatches groups
src/svg_converter/converter.py - Paths and polygons → Geometry analysis: analyzes geometry
src/svg_converter/handlers/polygons.py - Paths and polygons → Basic shapes: uses shape support
src/svg_converter/handlers/polygons.py - Basic shapes → Color parsing: parses colors
src/svg_converter/handlers/basic_shapes.py - Text handler → Color parsing: parses colors
src/svg_converter/handlers/text.py - Basic shapes → Editable PPTX: creates shapes
src/svg_converter/handlers/basic_shapes.py - Paths and polygons → Editable PPTX: creates paths
src/svg_converter/handlers/polygons.py